derpibooru-api
Version:
Modern TypeScript implementation of Derpibooru API with Zod validation
38 lines (37 loc) • 1.97 kB
TypeScript
import { type Safe, type ImageResponse, type Tag, type FilterResponse, type UserResponse, type OembedResponse, type SearchImagesResponse, type SearchTagsResponse, type CommentResponse, type PostResponse, type SearchCommentsResponse, type SearchGalleriesResponse, type SearchPostsResponse } from "./index.js";
interface DerpibooruClientConfig {
apiKey?: string;
baseUrl?: string;
}
interface RequestOptions {
method?: string;
body?: unknown;
searchParams?: Record<string, string>;
}
declare class DerpibooruClient {
#private;
constructor(config?: DerpibooruClientConfig);
searchImages(query: string, page?: number, perPage?: number): Promise<Safe<SearchImagesResponse>>;
getImage(id: number): Promise<Safe<ImageResponse>>;
getFeaturedImage(): Promise<Safe<ImageResponse>>;
searchTags(query: string, page?: number): Promise<Safe<SearchTagsResponse>>;
getTag(tagId: string): Promise<Safe<Tag>>;
getFilter(id: number): Promise<Safe<FilterResponse>>;
getSystemFilters(page?: number): Promise<Safe<FilterResponse[]>>;
getUser(id: number): Promise<Safe<UserResponse>>;
getOembed(url: string): Promise<Safe<OembedResponse>>;
uploadImage(params: {
url: string;
description?: string;
tags?: string[];
source_url?: string;
}): Promise<Safe<ImageResponse>>;
reverseImageSearch(url: string, distance?: number): Promise<Safe<SearchImagesResponse>>;
getUserFilters(page?: number): Promise<Safe<FilterResponse[]>>;
getComment(id: number): Promise<Safe<CommentResponse>>;
searchComments(query: string, page?: number): Promise<Safe<SearchCommentsResponse>>;
searchGalleries(query: string, page?: number): Promise<Safe<SearchGalleriesResponse>>;
getPost(id: number): Promise<Safe<PostResponse>>;
searchPosts(query: string, page?: number): Promise<Safe<SearchPostsResponse>>;
}
export { type DerpibooruClientConfig, type RequestOptions, DerpibooruClient };