import type { AnimeBasicData } from "../types/animes.js"; import type { BanData } from "../types/ban.js"; import type { ClubBasic } from "../types/club.js"; import type { ApiRequestHandler } from "../types/auth-layer-api-options.js"; import type { MangaBasicData } from "../types/manga.js"; import type { MessageData, MessageType } from "../types/message.js"; import type { UserRateExtended, UserRateStatus } from "../types/user-rate.js"; import type { UserData, UserBasic, UserFavourites, UserHistoryRecord, UserId, UserUnreadMessages } from "../types/user.js"; import type { IdField } from "./common.js"; export interface UsersListParams { page?: number; limit?: number; } export interface FriendsListParams { id: UserId; page?: number; limit?: number; } export interface UsersByIdParams { id: number | string; is_nickname?: boolean; } export interface UsersAnimeRatesParams { id: UserId; page: number; limit: number; status: UserRateStatus; censored: boolean; } /** @interface */ export type UsersMangaRatesParams = Omit; export interface UsersMessagesParams { id: UserId; page?: number; limit?: number; type: MessageType; } export interface UsersHistoryParams { id: UserId; page: number; limit: number; target_id: number; target_type: "Anime" | "Manga"; } /** * Пользователи * @param methods - набор методов для выполнения API-запросов */ export declare class UsersApi { constructor(req: ApiRequestHandler); /** * Список пользователей * @param params - параметры пагинации */ readonly list: (params: UsersListParams) => Promise; /** * Получить пользователя по `UserId` * @param params - параметр id и опциональный флаг is_nickname */ readonly byId: ({ id, ...params }: UsersByIdParams) => Promise; /** * Получить краткую информацию о пользователе * @param params - объект с полем id */ readonly info: ({ id }: IdField) => Promise; /** * Получить информацию о текущем пользователе */ readonly whoami: () => Promise; /** * Выйти из аккаунта */ readonly signOut: () => Promise; /** * Список друзей пользователя * @param params - объект с полем id и опциональными параметрами пагинации */ readonly friends: ({ id, ...params }: FriendsListParams) => Promise; /** * Список клубов пользователя * @param params - объект с полем id */ readonly clubs: ({ id }: IdField) => Promise; /** * Получить список аниме пользователя (anime rates) * @param params - параметры запроса (id, page, limit, status, censored) */ readonly animeRates: ({ id, ...params }: UsersAnimeRatesParams) => Promise>; /** * Получить список манги пользователя (manga rates) * @param params - параметры запроса (id, page, limit, censored и т.д.) */ readonly mangaRates: ({ id, ...params }: UsersMangaRatesParams) => Promise>; /** * Получить избранное пользователя * @param params - объект с полем id */ readonly favourites: ({ id }: IdField) => Promise; /** * Список сообщений между текущим пользователем и другим пользователем * * Требует OAuth-скоупа `messages` * @param params - параметры (id, page, limit, type) */ readonly messages: ({ id, ...params }: UsersMessagesParams) => Promise; /** * Получить количество непрочитанных сообщений у пользователя * @param params - объект с полем id */ readonly unreadMessages: ({ id }: IdField) => Promise; /** * История пользователя (history) * @param params - параметры запроса (id, page, limit, target_id, target_type) */ readonly history: ({ id, ...params }: UsersHistoryParams) => Promise; /** * История банов пользователя * @param params - объект с полем id */ readonly bans: ({ id }: IdField) => Promise; }