UNPKG

@akomalabs/kemono

Version:

A production-grade TypeScript API wrapper for the Kemono/Coomer platforms

65 lines (64 loc) 2.19 kB
import type { KemonoService, Creator, Post } from '../types/api'; import { HttpClient } from '../utils/http-client'; /** * Interface for favorite creator with additional favorite-specific fields */ export interface FavoriteCreator extends Creator { faved_seq: number; last_imported: string; } /** * Interface for favorite post with additional favorite-specific fields */ export interface FavoritePost extends Post { faved_seq: number; } /** * Favorites API endpoints */ export declare class FavoritesApi { private readonly client; constructor(client: HttpClient); /** * List favorite creators * @throws {AuthenticationError} If session key is not provided * @returns Array of favorite creators */ listCreators(): Promise<FavoriteCreator[]>; /** * List favorite posts * @throws {AuthenticationError} If session key is not provided * @returns Array of favorite posts */ listPosts(): Promise<FavoritePost[]>; /** * Add a creator to favorites * @param service Platform service * @param creatorId Creator's ID * @throws {AuthenticationError} If session key is not provided */ addCreator(service: KemonoService, creatorId: string | number): Promise<void>; /** * Remove a creator from favorites * @param service Platform service * @param creatorId Creator's ID * @throws {AuthenticationError} If session key is not provided */ removeCreator(service: KemonoService, creatorId: string | number): Promise<void>; /** * Add a post to favorites * @param service Platform service * @param creatorId Creator's ID * @param postId Post ID * @throws {AuthenticationError} If session key is not provided */ addPost(service: KemonoService, creatorId: string | number, postId: string): Promise<void>; /** * Remove a post from favorites * @param service Platform service * @param creatorId Creator's ID * @param postId Post ID * @throws {AuthenticationError} If session key is not provided */ removePost(service: KemonoService, creatorId: string | number, postId: string): Promise<void>; }