import { AxiosInstance } from 'axios';
import * as I from './Types.js';
import { api } from './Types.js';
export declare function routeNameId(id: number | string, text?: string): string;
export declare function clearPhone(draftPhoneNumber: number | string, prefix?: string, suffix?: string): string;
export declare class BetBoosterOfficeApi {
    private _baseUrl;
    /**
     * A clean superagent instance that can be used for http requests
     */
    axi: AxiosInstance;
    private _locale;
    private _locales;
    private _languageIdsRemote;
    private EXIST_LANGUAGES;
    private _languageId;
    private _lang;
    private _APIv1;
    private _APIv2;
    private _API_LBC;
    private _ENDPOINT_DOMAIN;
    private _TOKEN?;
    private _USER_DATA;
    private LANG_DEFAULT;
    private LOCALE_DEFAULT;
    private LANG_ID_DEFAULT;
    private maxTimeExecutionMs;
    liveTimestamp: string | number;
    private _liveTimestampReset;
    liveRecivedIsFullPackage?: boolean;
    isNotActive?: boolean;
    /**
     * Represents the BetBoosterApi class.
     * @constructor
     * @param {AxiosInstance} axiosInstance - The Axios instance to be used for making HTTP requests. Aka axios.create()
     * @param {string} baseUrl - The base URL of the API.
     * @param {string} [lang='en'] - The language to be used for API requests. Defaults to 'en'.
     * @param {number} [maxTimeExecutionMs=15000] - The maximum time allowed for API request execution in milliseconds. Defaults to 15000.
     * @param {boolean} [isDev=false] - Indicates whether the API is running in development mode. Defaults to false.
     */
    constructor(axiosInstance: AxiosInstance, baseUrl: string, lang?: string, maxTimeExecutionMs?: number, isDev?: boolean);
    get locale(): string;
    get isSinged(): boolean;
    get user(): I.IUser;
    set user(value: I.IUser);
    get lang(): string;
    get baseUrl(): string;
    get languageId(): number;
    get token(): string | undefined;
    set token(value: string | undefined);
    /**
     * Обрабатывает данные ответа и возвращает объект с данными, ошибкой, статусом и текстом статуса.
     *
     * @template T - Тип данных, возвращаемых в поле `data`.
     * @param {any} rawData - Сырые данные ответа.
     * @param {number} status - HTTP статус ответа.
     * @param {string} statusText - Текст статуса HTTP ответа.
     * @returns {{ data: T, error: string | null, status: number, statusText: string }} Объект, содержащий данные ответа, ошибку, статус и текст статуса.
     */
    responseHandlerData<T = any | null>(rawData: any, status: number, statusText: string): {
        data: T | null;
        error: string | null;
        status: number;
        statusText: string;
    };
    setDevMode(devMode?: boolean | undefined): void;
    checkLanguage(lang?: string): string;
    setLanguage(lang?: string): string;
    /**
     * Устанавливает язык и локаль для удаленного API.
     * @param lang Язык (по умолчанию 'en').
     * @returns Возвращает true, если язык и локаль успешно установлены, в противном случае возвращает false.
     */
    setLanguageRemoteLocale(lang?: string): Promise<boolean>;
    private setBaseUrl;
    private statusHandler;
    /**
     * Обработчик строки запроса. Заменяет значения
     * * `null` на `'null'`
     * * `false` на `'false'`
     * * `true` на `'true'`
     * * `undefined` на `''`
     * @param queryStringData - queryString Record<string, any>
     * @returns Обработанные данные строки запроса.
     */
    private queryStringHandler;
    private responseHandler;
    /**
     * Обработчик ошибок для Axios.
     *
     * @param error - Объект ошибки AxiosError.
     * @returns Объект с данными об ошибке, включая статус и текст ошибки.
     */
    private axiosErrorHandler;
    /**
     * Возвращает URL для указанного пути API и версии.
     *
     * @param apiPath - Путь API.
     * @param apiVersion - Версия API.
     * @returns URL для указанного пути API и версии.
     */
    url(apiPath: string, apiVersion?: api): string;
    /**
     * Выполняет HTTP-запрос с заданными параметрами.
     * @param url - URL-адрес для выполнения запроса.
     * @returns Объект, содержащий методы для настройки запроса и выполнения запроса.
     */
    request(url: string): {
        /**
         * Выполняет запрос с заданными параметрами.
         * @param queryParams - Параметры запроса.
         * @returns Экземпляр класса BetBoosterOfficeApi.
         */
        query(queryParams?: Record<string, unknown> | object): any;
        /**
          * Устанавливает заголовки запроса.
          * @param headers - Объект с заголовками запроса.
          * @returns Экземпляр класса BetBoosterOfficeApi.
          */
        headers(headers?: Record<string, string>): any;
        /**
         * Устанавливает метод запроса GET.
         * @returns Экземпляр класса BetBoosterOfficeApi.
         */
        GET(): any;
        /**
         * Устанавливает метод запроса POST.
         * @param payload - Полезная нагрузка для запроса.
         * @returns Экземпляр класса BetBoosterOfficeApi.
         */
        POST(payload?: Record<string, unknown> | object): any;
        /**
         * Устанавливает метод запроса PUT и устанавливает тело запроса.
         * @param payload - Данные, которые будут отправлены в теле запроса.
         * @returns Экземпляр класса BetBoosterOfficeApi с установленным методом запроса PUT и телом запроса.
         */
        PUT(payload?: Record<string, unknown> | object): any;
        /**
         * Устанавливает метод запроса DELETE.
         * @param payload Данные запроса в формате объекта или записи.
         * @returns Экземпляр класса BetBoosterOfficeApi.
         */
        DELETE(payload?: Record<string, unknown> | object): any;
        /**
         * Выполняет запрос к API.
         *
         * @returns Объект, содержащий данные, статус и текст статуса ответа.
         * ```
         * { data, status, statusText }
         * ```
         */
        exec<T>(): Promise<I.IResponseData<T>>;
        /**
          * Получает значение.
          * @returns Промис, который разрешается с данными.
          */
        value<T>(): Promise<void>;
    };
    /**
     * Sends a GET request to the specified endpoint with optional query parameters and options.
     * @param url - The endpoint to send the GET request to.
     * @param queryParams - The query parameters to include in the request URL. Defaults to an empty object.
     * @param headers - The options to include in the request. Defaults to an empty object.
     * @returns A Promise that resolves to the response body of the GET request.
     */
    GET(url: string, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
    POST(url: string, payload?: Record<string, unknown> | object, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
    DELETE(url: string, payload?: Record<string, unknown> | object, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
    PUT(url: string, payload?: Record<string, unknown> | object, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
    /**
     * Асинхронно выполняет вход в систему.
     * @description Если логин успешен, сохраняет токен в свойстве класса token
     * и сохраняет объект, представляющий пользователя в свойстве класса user
     * в последствии эти свойства используем для обработки запроса
     * @param login Логин пользователя.
     * @param password Пароль пользователя.
     * @returns Объект, представляющий пользователя, если вход выполнен успешно. В противном случае, возвращает пустой объект.
     */
    login({ login, password }: {
        login: string;
        password: string;
    }): Promise<I.IUser>;
    /**
      * Получает данные пользователя.
      * @returns Данные пользователя или null, если пользователь не найден.
      */
    getUserData(): Promise<any>;
    getOfficeUserData(): Promise<any>;
    /**
     * Returns the list of prematch sports
     *
     * @param minutes The number of minutes to consider for the data retrieval. Defaults to 0.
     * @returns {Promise<Array<any>>} A promise that resolves to an array of line sports data.
     */
    getLineSports(minutes?: number): Promise<I.ISport[]>;
    /**
     * Получает список стран для указанного идентификатора спорта.
     * @param sportId - Идентификатор спорта.
     * @param minutes - Опциональный параметр, количество минут.
     * @returns Промис, который разрешается в массив объектов типа ICountry.
     */
    getCountriesList(sportId: number, minutes?: number): Promise<I.ICountry[]>;
    /**
     * Retrieves prematch tournaments based on the specified sport ID, country ID, and minutes.
     * @param sportId - The ID of the sport.
     * @param countryId - The ID of the country.
     * @param minutes - The number of minutes ago for which data is to be retrieved.
     * @returns A promise that resolves to an array of prematch tournaments.
     */
    getPrematchTournaments(sportId: number, countryId: number, minutes?: number): Promise<I.GetPrematchTournament[]>;
    /**
     * Retrieves prematch events based on the specified parameters.
     * @param sportId - The ID of the sport.
     * @param countryId - The ID of the country.
     * @param tournamentId - The ID of the tournament.
     * @param minutes - The number of minutes ago for which data is to be retrieved.
     * @returns A Promise that resolves to an array of prematch events.
     */
    getPrematchEvents(sportId: number, countryId: number, tournamentId: number, minutes: number): Promise<any>;
    /**
     * Retrieves the hot prematch events
     * @returns {Promise<Array<any>>} A promise that resolves to an array of hot events.
     */
    getHotEvents(): Promise<any[]>;
    /**
     * Получает предматчевое событие по его ID.
     * @param eventId - Идентификатор события.
     * @returns Объект предматчевого события.
     */
    getEventPrematch(eventId: number | string): Promise<any>;
    /**
     * Retrieves prematch tournaments based on the specified sport ID and minutes.
     * @param sportId - The ID of the sport.
     * @param minutes - The number of minutes ago for which data is to be retrieved.
     * @returns A filtered list of prematch tournaments.
     */
    getPrematchTournamentsByMinutes(sportId?: number, minutes?: number): Promise<any>;
    /**
     * Retrieves the headers of prematch tournaments based on the specified sport ID and minutes.
     * @param sportId The ID of the sport. Defaults to 0 if not provided.
     * @param minutes - The number of minutes ago for which data is to be retrieved.
     * @returns A promise that resolves to an array of tournament headers.
     */
    getPrematchTournamentsHeadersByMinutes(sportId?: number, minutes?: number): Promise<any>;
    /**
     * Sets or resets the live timestamp reset flag.
     *
     * @param value - Whether to enable live timestamp reset. Defaults to true.
     */
    liveTimestampReset(value?: boolean): void;
    /**
     * Получает массив заголовков live событий с главными ставки.
     * @description Для интервального выполнения запроса используется параметр ```this.liveTimestamp```
     * который хранится в этом классе. После выполнения запроса, ```this.liveTimestamp```
     * обновляется из ответа.
     * @param requestFullEventsList - Флаг, указывающий, нужно ли запрашивать
     * полный список событий или только изменения после предыдущего запроса.
     * @param events - Массив ID live событий. В этом случае выбранные live события возвращаются со всеми ставками.
     * @returns Промис, который разрешается в массив данных о live событиях.
     */
    getLive(requestFullEventsList?: boolean, events?: (number | string)[]): Promise<I.ILiveDataResponce>;
    /**
     * Возвращает массив из одного полного лайв события со всеми ставками по ID .
     * @param eventId - ID полного live события.
     * @returns Массив с информацией о событии.
     */
    getLiveEventsAndFullEvent(eventId: number | string): Promise<I.ILiveData[]>;
    /**
     * Возвращает полное лайв событие со всеми ставками по ID .
     * @param eventId - ID полного live события.
     * @returns Массив с информацией о событии.
     */
    getLiveEventFull(eventId: number | string): Promise<I.ILiveData>;
    /**
      * Получает ограничения на ставку.
      * @returns Объект с минимальным и максимальным значением ограничений на ставки.
      */
    getBetsLimits(): Promise<any>;
    /**
     * Добавляет ставку в купон.
     * @param basket - Корзина с информацией о ставке.
     * @returns Результат операции добавления в бетслип или null, если операция не удалась.
     */
    addToBetslip(basket: I.TAddBetslip): Promise<any>;
    /**
     * Добавляет бонус в купон.
     * @param odd - Коэффициент, к которому добавляется бонус.
     * @returns Результат операции или null, если результат не определен.
     */
    addBonus(odd: number): Promise<any>;
    /**
     * Удаляет бонус из купона.
     * @returns {Promise<boolean>} Возвращает true, если бонус успешно удален, в противном случае возвращает false.
     */
    removeBonus(): Promise<boolean>;
    /**
     * Удаляет ставку из купона.
     * @param basket - Объект, содержащий информацию о купоне.
     * @returns Возвращает true, если элемент успешно удален, в противном случае возвращает false.
     */
    removeFromBetslip(basket: I.TAddBetslip): Promise<any>;
    /**
     * Обновляет ставку в купоне.
     * @param basket - Корзина с информацией о ставке.
     * @returns Возвращает true, если ставка была успешно обновлена, в противном случае возвращает false.
     */
    updateBet(basket: I.TAddBetslip): Promise<boolean>;
    /**
     * Получает информацию о билете.
     * @description Требует авторизации.
     * @returns {Promise<Betslip | null>} Объект с информацией о билете или null, если токен не установлен.
     * @example
     * ```typescript
      {
        BetslipType: 0,
        Bets: [],
        RecommendedAmount: 0,
        bonuses: [
          [ 'Koef', 9, 1.01 ],
          [ 'Koef', 20, 1.02 ],
          [ 'Koef', 50, 1.03 ],
          [ 'Koef', 100, 1.04 ],
          [ 'Koef', 200, 1.05 ],
          [ 'Koef', 500, 1.06 ],
          [ 'Kolvo', 5, 1.01 ],
          [ 'Kolvo', 9, 1.02 ],
          [ 'Kolvo', 22, 1.03 ],
          [ 'Kolvo', 11, 1.04 ],
          [ 'Kolvo', 13, 1.05 ],
          [ 'Kolvo', 15, 1.06 ],
          [ 'Perestavka', true, 1.03 ],
          [ 'MinOdds', true, 1.02 ]
        ]
      }
     * ```
     */
    getBetslip(): Promise<any>;
    /**
     * Очищает купон.
     * @returns Промис, который разрешается в логическое значение, указывающее на успешность операции.
     */
    clearBetslip(): Promise<boolean>;
    /**
     * Изменяет тип купона.
     * @param betslipType - Тип купона.
     * @returns Возвращает true, если тип купона успешно изменен, в противном случае возвращает false.
     */
    changeBetslipType(betslipType: I.EBetslipType): Promise<boolean>;
    /**
     * Создает купон для размещения ставки.
     * @param betslip - Массив с информацией о ставках.
     * @param amount - Сумма ставки.
     * @param acceptCahngeCoefs - Флаг, указывающий, принимать ли изменения коэффициентов.
     * @param systemIndex - Размер системы (например, из 3-х событий по 2, значит передаем 2). Значение по умолчанию: -1 (если не система).
     * @returns Созданный купон для размещения ставки.
     */
    createCoupon(betslip: any[], amount: number, acceptCahngeCoefs: boolean, systemIndex?: number): I.TPlaceBetPayload;
    /**
    * Ставит ставку.
    * @param payload - Параметры размещения ставки.
    * @returns Результат размещения ставки.
    */
    placeCoupon(payload: I.TPlaceBetPayload): Promise<any>;
    /**
     * Удаляет купон по указанному коду в течении 10 минут.
     *
     * @param {string} code - Код купона, который необходимо удалить.
     * @returns {Promise<any | null>} Объект ответа или null, если пользователь не авторизован.
     */
    deleteCoupon(code: string): Promise<{
        data: boolean | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Устанавливает настройки корзины ставок.
     * @param betslipSettings - Настройки купона ставок.
     * @returns Массив результатов или пустой массив, если пользователь не авторизован.
     */
    setBetslipSettings(betslipSettings: I.TBetslipSettings): Promise<any>;
    /**
     * Получает список ставок пользователя, доступных для кэшаута.
     * @returns Список ставок пользователя, доступных для кэшаута.
     */
    getUserCashoutBets(): Promise<any>;
    /**
     * Метот делает попытку сделать CashOut для ставки
     * @param betId - ID ставки.
     * @returns Объект с ошибками, если возникли ошибки при выполнении запроса, или null, если запрос выполнен успешно.
     */
    returnCashOutBet(betId: number): Promise<I.PutBetErrors | null>;
    payBet(payload: I.TPayBetPayload): Promise<I.PutBetErrors | null>;
    /**
     * Retrieves the user's balance.
     * @returns A promise that resolves to the user's balance.
     */
    balance(): Promise<{
        Amount: number;
    } | {}>;
    /**
     *
     * @returns
     * item1 = Лимит кассы на постановку ставки
     * item2 = Frozzen balanse
     * ```
     * { item1: 10000, currence1: '₴', item2: 2371, currence2: '₴' }
     * ```
     */
    balanceCashPoint(): Promise<I.IResponseData<I.ICashPointBalance | null>>;
    /**
     * Возвращает подробности ставки по номеру купона
     * @param code
     * @returns  Объект, содержащий данные, статус и текст статуса ответа.
     * ```
     *     { data, status, statusText }
     *
     * ```
     *
     */
    getBetByCoupon(code: number | string, locale?: I.ELocales): Promise<I.IResponseData<I.IBetCouponeResponse>>;
    /**
      * Выполняет погашение ставки.
      * @param payload - Параметры для погашения ставки.
      * ```
      *   {
      *     BetId: number;
      *     AmountOut: number;
      *   }
      * ```
      * @returns Результат выполнения погашения ставки.
      */
    redeemTheBet(payload: I.IRedeemTheBetPayload): Promise<I.IResponseData<boolean>>;
    getLimitForPoint(): Promise<any>;
    /**
     * Выполняет выход пользователя из системы.
     * @returns Объект, содержащий информацию об успешности выхода и статусе авторизации пользователя.
     */
    logout(): Promise<{
        ok: boolean;
        isLogged: any;
    }>;
    /**
     * Изменяет пароль пользователя.
     * @param payload - Объект, содержащий данные для изменения пароля. Doc: https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IChangePasswordOfficePayload.html
     * @returns Возвращает `null` в случае, если пользователь не авторизован.
     */
    changePassword(payload: I.IChangePasswordOfficePayload): Promise<{
        ok: boolean;
        status: any;
    }>;
    setRemoteLanguage(lang?: string): Promise<boolean>;
    /**
      * Получает содержимое ставки по идентификатору.
      * @param betId - Идентификатор ставки.
      * @returns Содержимое ставки.
      */
    getBetContent(betId: number): Promise<any>;
    /**
      * Получает содержимое ставки по идентификатору.
      * @param betId - Идентификатор ставки.
      * @returns Содержимое ставки.
      */
    getBetContentByLang(betId: number, lang?: string): Promise<any>;
    /**
     * Получает ставки пользователя.
     * @param payload - Параметры запроса.
     * @returns Промис, который разрешается с результатом запроса.
     * @note Размер страницы должен быть не больше 20 строк на страницу
     * @deprecated Use getUserBets02 method
     */
    getUserBets(payload: I.TGetUserBetsPayload): Promise<any>;
    /**
     * Получает ставки пользователя.
     * @param payload - Параметры запроса.
     * @returns Промис, который разрешается с результатом запроса.
     * @note Размер страницы должен быть не больше 20 строк на страницу
     * @deprecated Use getUserBets02 method
     */
    getUserBets02(payload: I.TGetUserBetsPayload): Promise<{
        data: any;
        error: string | string[] | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Fetches user bets with administrative filters and pagination.
     *
     * @param payload - The payload containing pagination and filter information.
     * @returns A promise that resolves to an object containing the data, error, status, and statusText.
     *
     * @template I.IPaginationPayload<I.IUsersBetsAdmPayload> - The type of the pagination payload.
     * @template { data: any; error: string | string[] | null; status: number; statusText: string; } - The return type of the promise.
     *
     * @example
     * ```typescript
     * const payload = {
     *   Filter: {
     *     DateStart: "2024-11-01T00:00:00", // in 'Europe/Kiev' timezone
     *     DateEnd: "2024-11-16T00:00:00", // in 'Europe/Kiev' timezone
     *     UserId: 123,
     *     // other filter fields...
     *   },
     *   PageNumber: 1,
     *   PageSize: 20,
     * };
     * const result = await getUserBetsAdm(payload);
     * console.log(result.data);
     * ```
     */
    getUserBetsAdm(payload: I.IPaginationPayload<I.IUsersBetsAdmPayload>): Promise<{
        data: any;
        error: string | string[] | null;
        status: number;
        statusText: string;
    }>;
    /** Конвертирует различные представления корзины в единый формат
     * @param betslipItem - элемент корзины
     */
    convertBasketToPost(betslipItem: I.IBetslipItems): I.IAddToBasket;
    /**
     * Преобразует бонусы в массив.
     * @param bonus Объект, содержащий бонусы.
     * @returns Массив бонусов.
     */
    convertBonuses(bonus: Record<string, any>): any[];
    /**
      * Получает полные данные о текущих событиях в режиме реального времени без сохранения временной метки.
      * @returns Промис, который разрешается в массив объектов типа I.ILiveData.
      */
    private getFullLiveWithoutSaveTimeStamp;
    /**
     * Retrieves sports events (live & prematch) based on the provided search text.
     * @param searchText - The text to search for.
     * @returns A promise that resolves to an array of ISearchEventsData.
     */
    getSportsEventsSearch(searchText: string): Promise<I.ISearchEventsData[]>;
    /**
     * Проверяет авторизацию пользователя.
     * @returns Объект, содержащий информацию о состоянии авторизации.
     */
    checkAuth(): Promise<{
        isSinged: boolean;
        status: number;
        statusText: string;
    }>;
    /**
   * Получает информацию о пользователе.
   *
   * @param {I.IGetUserInfoPayload} payload - Параметры запроса, которые могут содержать:
   * @param {number | string} payload.userAccount - Учетная запись пользователя (необязательный параметр).
   * @param {string} payload.userName - Имя пользователя (необязательный параметр).
   * @param {number | string} payload.userId - Идентификатор пользователя (необязательный параметр).
   *
   * @returns {Promise<{ userInfo: I.IGetUserInfoResponse | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий информацию о пользователе, статус и текст статуса.
   *
   * @example
   * const payload = {
   *     userAccount: 12345,
   *     userName: 'JohnDoe',
   *     userId: '67890'
   * };
   * const result = await getUserInfo(payload);
   * // Возвращает объект с информацией о пользователе, статусом и текстом статуса.
   */
    getUserInfo(payload: I.IGetUserInfoPayload): Promise<{
        userInfo: I.IGetUserInfoResponse | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Получает информацию о пользователе с транзакциями вывода средств.
     * @param payload - Параметры запроса.
     * @returns Объект, содержащий информацию о пользователе, статус и текст статуса.
     * @example
     ```
      IGetUserInfoPayload {
        userAccount?: number | string;
        userName?: string;
        userId?: number | string;
      }
     ```
     */
    getUserInfoWithWithdrawalTrans(payload: I.IGetUserInfoPayload): Promise<{
        userInfo: I.IGetUserInfoResponse | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Получает список заказов для вывода заказы для вывода.
     * @returns Объект, содержащий данные о заказах для вывода, статус и текст статуса.
     */
    getOrdersForWithdrawal(): Promise<{
        withdrawalData: I.IOrderForWithdrawal;
        status: number;
        statusText: string;
    }>;
    /**
     * Вносит деньги на счет игрока.
     *
     * @param {I.IDepositMoneyPayload} payload - Параметры для внесения денег.
     * @returns {Promise<{ depositInfo: boolean | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий данные, статус и текст статуса.
     *
     * @example
     * const payload = {
     *     userId: 1,
     *     sum: 100
     * };
     * const result = await depositMoney(payload);
     * // Возвращает объект с данными, статусом и текстом статуса.
     */
    depositMoney(payload: I.IDepositMoneyPayload): Promise<{
        depositInfo: boolean | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Метод для вывода денег с баланса игрока.
     *
     * @param {I.IWithdrawlMoneyPayload} payload - Параметры вывода денег.
     * @returns {Promise<{ withdrawlInfo: boolean | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий данные, статус и текст статуса.
     *
     * @example
     * const payload = {
     *     userId: 1,
     *     amount: 100,
     *     code: 'ABC123'
     * };
     * const result = await withdrawlMoney(payload);
     * // Возвращает объект с данными, статусом и текстом статуса.
     */
    withdrawlMoney(payload: I.IWithdrawlMoneyPayload): Promise<{
        withdrawlInfo: boolean | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Метод для вывода денег с баланса игрока с использованием ID транзакции.
     *
     * @param {I.IWithdrawlMoneyByTransactionPayload} payload - Параметры вывода денег.
     * @returns {Promise<{ data: boolean | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий данные, статус и текст статуса.
     *
     * @example
     * const payload = {
     *     userId: 1,
     *     transactionId: 1,
     * };
     * const result = await withdrawlMoney(payload);
     * // Возвращает объект с данными, статусом и текстом статуса.
     */
    withdrawlMoneyByTransaction(payload: I.IWithdrawlMoneyByTransactionPayload): Promise<{
        data: I.IApiResponse<boolean> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Проверяет, существует ли пользователь с указанным логином.
     * @param userName - Логин пользователя.
     * @returns Объект, содержащий информацию о наличии пользователя.
     */
    isUserExists(userName: string): Promise<{
        data: boolean;
        status: number;
        statusText: string;
    }>;
    /**
     * Создает интернет пользователя для кассы !!! напрямую в БД
     * @param payload - Параметры регистрации пользователя.
     * @returns Объект, содержащий информацию о результате операции.
     * @example
     * const SignUpPayloadDirect: I.TSignUpPayload = {
     *   PartnerSiteUid: "partner.win",
     *   EmailOrPhone: "380671110000", // телефон записываем без "+"
     *   PointId: 85,
     *   Password: "Password",
     *   PasswordRepeat: "Password",
     * }
     */
    createInternetUser(payload: I.TSignUpPayload): Promise<{
        created: boolean | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Получает GUID кассира для автологина в офисе .
     * @returns Объект, содержащий GUID кассира, ошибку, статус и текст статуса.
     */
    getCashierGuid(): Promise<{
        guid: string | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Получает список игроков кассира.
     * @param {I.ICashierPlayersPayload} payload - Параметры запроса.
     * @returns {Promise<{ data: I.ICashierPlayersResponse; status:number; statusText:string; }>} - Объект с данными, статусом и текстом статуса.
     * @example
     * const payload = {
     *   CurrentPage: 1,
     *   CountItemOnPage: 10
     * };
     * const response = await getCashierPlayers(payload);
     * console.log(response.data); // Выводит данные игроков
     * console.log(response.status); // Выводит статус ответа
     * console.log(response.statusText); // Выводит текст статуса ответа
     */
    getCashierPlayers({ CurrentPage, CountItemOnPage }: I.ICashierPlayersPayload): Promise<{
        data: I.ICashierPlayersResponse;
        status: number;
        statusText: string;
    }>;
    /** Получает фильтрованный список ставок на кассе */
    getTakedBets(getBetsPayload: I.IBetsPointsPayload): Promise<{
        betsData: I.TTakedBetsData;
        error: string | string[] | null;
        status: number;
        statusText: string;
    }>;
    getBetsStatistic(betsStatisticPayload: I.IBetsStatisticPayload): Promise<{
        data: any;
        error: string | string[] | null;
        status: number;
        statusText: string;
    }>;
    getMainFinanceReport(betsStatisticPayload: I.IBetsStatisticPayload): Promise<{
        data: any;
        error: string | string[] | null;
        status: number;
        statusText: string;
    }>;
    /** Возвращает справочники
     * @example
     * ```
     * {
          Culture: string;
          HandBooks: ('Roles' | 'AccessRoles' | 'Pointers' | 'PointersGroups' | 'PlayerLevel' | 'Languages' | 'SearchType' | 'All')[];
        }
     * ```
     * */
    getAllHandbooks(payload: I.IGetAllHandbooksPayload): Promise<{
        data: any;
        error: string | string[] | null;
        status: number;
        statusText: string;
    }>;
    getAvailableHandBooks(): Promise<{
        data: any;
        error: any;
        status: number;
        statusText: string;
    }>;
    /** Создаёт пользователя из Temp таблицы */
    createUserFromTempGetInfo(userName: string): Promise<{
        data: any;
        error: any;
        status: number;
        statusText: string;
    }>;
    /** Возвращает данные незарегистрированного пользователя из временной таблицы */
    getUserInfoFromTemp(userName: string): Promise<{
        data: I.IApiResponse<any> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    getBaseRates(baseCurrency: string): Promise<{
        data: any;
        status: number;
        statusText: string;
    }>;
    /**
     * Асинхронно получает список пользователей.
     *
     * @param {I.IPaginationPayload<I.IGetUsersListFilter>} payload - Параметры запроса для получения списка пользователей. https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IGetUsersListPayload.html
     * @returns {Promise<I.IApiResponse<I.IGetUsersListData> | null>} Объект ответа API, содержащий данные списка пользователей, или null в случае ошибки.
     */
    getUsersList(payload: I.IPaginationPayload<I.IGetUsersListFilter>): Promise<{
        data: I.IApiResponse<I.IGetUsersListData> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Асинхронно получает список Касс.
     *
     * @param payload - Параметры пагинации и фильтрации для получения списка точек.
     * @returns Обработанный ответ API, содержащий страницы точек или null.
     */
    getPointsList(payload: I.IPaginationPayload<I.IGetPointsListFilter>): Promise<{
        data: I.IApiResponse<I.IPointPages> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Выполняет запрос на снятие денег с аккаунта.
     *
     * @param payload - Объект, содержащий данные для снятия денег с аккаунта. https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IAccountMoneyPayload.html
     * @returns Промис, который разрешается с данными ответа или null в случае ошибки.
     */
    accountMoneyWithdraw(payload: I.IAccountMoneyPayload): Promise<{
        data: I.IApiResponse<boolean> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Асинхронный метод для добавления денег на счет.
     *
     * @param payload - Объект, содержащий данные для добавления денег на счет. https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IAccountMoneyPayload.html
     * @returns Обработанный ответ, содержащий данные типа boolean или null.
     */
    accountMoneyAdd(payload: I.IAccountMoneyPayload): Promise<{
        data: I.IApiResponse<boolean> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Sets a password for a cashier on behalf of an Admin, SubAdmin, or Owner.
     * @param payload - An object containing the data for changing the password. Doc: https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.ISetPasswordOfficePayload.html
     * @returns Returns `null` if the user is not authorized.
     */
    setPassword(payload: I.ISetPasswordOfficePayload): Promise<{
        data: boolean | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    pingApi(): Promise<{
        data: any;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Retrieves a list of user transactions.
     *
     * @param payload - The payload containing pagination and filter information.
     * @returns A promise that resolves to the API response containing user transactions or null.
     *
     * @remarks
     * This method sends a POST request to the `/GetUserTransactions` endpoint of the OFFICE API.
     * * (102)
     *
     * @example
     * ```typescript
     * const payload = {
     *   page: 0,
     *   pageSize: 10,
     *   Filter: {
     *     DateBeg: string
     *     DateEnd: string;
     *     ...
     *   }
     * };
     * const transactions = await api.getUserTransactions(payload);
     * console.log(transactions);
     * ```
     */
    getUserTransactions(payload: I.IPaginationPayload<I.IGetUsersTransactionsFilter>): Promise<{
        data: I.IApiResponse<any> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Выводит список подтверждённых заказов на вывод средств.
     *
     * @remarks
     * Endpoint: `/api/v1/office/en-US/ConfirmWithdrawalOrder`
     *
     * @param payload - Параметры для подтверждения заказа на вывод средств.
     * @returns Возвращает `true`, если заказ успешно подтвержден, иначе `null`.
     *
     * @example
     * Пример запроса:
     * ```typescript
     * const payload: I.IConfirmWithdrawalOrderPayload = {
     *   transactionId: 123456, // ID транзакции
     *   confirmedAmount: 100.50 // Подтвержденная сумма
     * };
     *
     * const result = await api.confirmWithdrawalOrder(payload);
     * console.log(result); // true или null
     * ```
     */
    getConfirmedWithdrawalOrders(payload: I.IGetConfirmedWithdrawalOrdersPayload): Promise<{
        data: I.IApiResponse<any> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /** only Admin & SubAdmin */
    getWithdrawalOrdersForConfirmed(payload?: {
        culture?: string;
        userId?: number;
    }): Promise<{
        data: I.IApiResponse<any> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    сonfirmWithdrawalOrder(payload: I.IConfirmWithdrawalOrderPayload): Promise<{
        data: I.IApiResponse<any> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /**
     * Cancels a withdrawal order.
     *
     * @param payload - The payload containing the details required to cancel the withdrawal order.
     *
     * @remarks
     * This method sends a POST request to the `/api/v2/orders/CancelOrderedTransaction` endpoint of the OFFICE API.
     * * (102)
     *
     * @returns A promise that resolves to the API response.
     */
    cancelWithdrawalOrder(payload: I.ICancelWithdrawalOrderPayload): Promise<{
        data: I.IApiResponse<any> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
    /** Возвращает содержание ставки по betId и userId */
    getBetContentAdm(payload: I.IGetBetContentAdmPayload): Promise<{
        data: I.IApiResponse<any> | null;
        error: string | null;
        status: number;
        statusText: string;
    }>;
}
