@akomalabs/kemono
Version:
A production-grade TypeScript API wrapper for the Kemono/Coomer platforms
65 lines (64 loc) • 2.19 kB
TypeScript
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>;
}