import type { Card, CardInfo, CardOwner, PaymentReq, User } from './types.js';
export declare class SPWorlds {
    private authorization;
    private token;
    private apiTimeout;
    private APIEndpoint;
    private requestAPI;
    /**
     * Класс для работы с SPWorlds API
     * @param id ID карты
     * @param token Токен карты
     * @param apiTimeout Таймаут запроса к API
     * @param APIEndpoint Вы можете указать другой API сервер (например https://spworlds.org). По умолчанию: https://spworlds.ru
     */
    constructor({ id, token, apiTimeout, APIEndpoint }: {
        id: string;
        token: string;
        apiTimeout?: number;
        APIEndpoint?: string;
    });
    /**
     * Проверка доступности SPWorlds API
     * @returns Состояние API
     */
    ping: () => Promise<boolean>;
    /**
     * Создание банковского перевода
     * @param receiver Номер карты получателя
     * @param amount Сумма перевода
     * @param comment Комментарий к переводу
     * @returns Баланс карты
     */
    createTransaction: ({ receiver, amount, comment }: {
        receiver: string;
        amount: number;
        comment: string;
    }) => Promise<{
        balance: string;
    }>;
    /**
     * Получение информации о карте
     * @returns Баланс и подключенный webhook
     */
    getCardInfo: () => Promise<CardInfo>;
    /**
     * Получение информации о владельце токена
     * @returns Никнейм, статус, роли, город, банковские карты и время создания
     */
    getCardOwner: () => Promise<CardOwner>;
    /**
     * Получение карт пользователя
     * @param Nickname Никнейм пользователя
     * @returns Массив с банковскими картами
     */
    getCards: (nickname: string) => Promise<Array<Card | undefined>>;
    /**
     * Получение ника игрока
     * @param discordId ID пользователя Discord
     * @returns Никнейм и Minecraft UUID игрока
     */
    findUser: (discordId: string) => Promise<User | null>;
    /**
     * Изменение вебхука карты
     * На вебхук будут отправляться все новые транзакции связанные с картой
     * @param url Ссылка на вебхук
     * @returns ID карты и обновленный webhook
     */
    setWebhook: (url: string) => Promise<{
        id: string;
        webhook: string;
    }>;
    /**
     * Создание запроса на оплату
     * @param items Товары транзакции
     * @param redirectUrl URL страницы, на которую попадет пользователь после оплаты
     * @param webhookUrl URL, куда наш сервер направит запрос, чтобы оповестить ваш сервер об успешной оплате
     * @param data Cюда можно поместить любые полезные данных. Ограничение - 100 символов.
     * @returns Ссылка на страницу оплаты, на которую нужно перенаправить пользователя
     */
    initPayment: ({ items, redirectUrl, webhookUrl, data }: PaymentReq) => Promise<{
        url: string;
    }>;
    /**
     * Проверка валидности вебхука
     * @param body Все данные, пришедшие по вебхуку
     * @param hashHeader Значение хедера `X-Body-Hash`
     */
    validateHash: (body: string | object, hashHeader: string) => boolean;
}
