import { PersonalAuthScope } from '@vkontakte/vk-bridge'; import { GetVkAccessTokenParamsType, GetNewVkAccessTokenParamsType, GetNewVkAccessTokenResponseType } from './types'; /** * Массив всех возможных scopes для доступа к данным пользователя. * * @constant {PersonalAuthScope[]} * * @see {@link https://dev.vk.com/reference/access-rights} */ declare const ALLOWED_VK_SCOPES: PersonalAuthScope[]; /** * Утилита для вычленения массива scopes из строки. * * @param {string=} scopes Строка, в которой через запятую перечислены scope. Допускаются только значения из {@link ALLOWED_VK_SCOPES}. * @returns {PersonalAuthScope[]} Массив извлеченных scope. В случае ошибки возвращается пустой массив. */ declare const parseVkScopes: (scopes?: string | undefined) => PersonalAuthScope[]; /** * Утилита для проверки равенства двух множеств scopes. * * @param {Set} firstScope Первое множество scopes. * @param {Set,} secondScope Второе множество scopes. * @returns {boolean} Если все значения из первого множества встречаются во втором, возвращает true. Иначе возвращает false. */ declare const checkOneScopesSetIncludesAnother: (firstScope: Set, secondScope: Set) => boolean; /** * Утилита для получения нового токена доступа без возможности того, что токен мог быть получен ранее. * * @param {GetNewVkAccessTokenParamsType} props * @param {PersonalAuthScope[] | null} [props.scopes=null] Массив необходимых scopes. Если не передан, будет получен токен с пустым scope. * @param {number=} props.appId ID текущего приложения. * @returns {Promise} Возвращает ответ, полученный на запрос VKWebAppGetAuthToken с переданными параметрами. * * @see {@link https://dev.vk.com/bridge/VKWebAppGetAuthToken} */ declare const getNewVkAccessToken: ({ scopes, appId, }: GetNewVkAccessTokenParamsType) => Promise; /** * Утилита для получения токена доступа. * Сохраняет новый токен в window.access_token и имеющиеся у него права доступа в window.scope. * Если ранее токен с требуемыми правами доступа (scopes) уже был получен, будет взят токен из window.access_token. * * @param {GetVkAccessTokenParamsType} props * @param {PersonalAuthScope[] | null} [props.scopes=null] Массив необходимых scopes. Объединяется с уже имеющимися правами доступа в window.scope. * @param {(error?: ErrorData) => void=} props.onUserDeniedAll Коллбэк, вызываемый в случае, если пользователь отказался давать доступ к запрашиваемым scopes. * @param {(error?: ErrorData) => void=} props.onUserDeniedSomeScopes Коллбэк, вызываемый в случае, если пользователь дал доступ не ко всем требуемым scopes. * @param {(error?: ErrorData) => void=} props.onErrorOccurred Коллбэк, вызываемый в случае, если произошла ошибка. * @param {number=} props.appId ID текущего приложения. * @returns {Promise} В случае успеха возвращает токен доступа. Иначе возвращает null. * * @see {@link https://dev.vk.com/bridge/VKWebAppGetAuthToken} */ declare const getVkAccessToken: ({ scopes, onUserDeniedAll, onUserDeniedSomeScopes, onErrorOccurred, appId, }: GetVkAccessTokenParamsType) => Promise; export { ALLOWED_VK_SCOPES, parseVkScopes, checkOneScopesSetIncludesAnother, getNewVkAccessToken, getVkAccessToken, };