///
declare namespace FurryBotAPI {
type OmitFirstArg = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;
function f(method: "image"): Promise;
function f(method: "json", amount: 1): Promise;
function f(method: "json", amount?: 2 | 3 | 4 | 5): Promise;
function f(method?: "image" | "json", amount?: 1 | 2 | 3 | 4 | 5): Promise;
type YiffEndpoints = "dickgirl" | "gay" | "lesbian" | "straight";
type FurryEndpoints = "boop" | "cuddle" | "flop" | "fursuit" | "hold" | "howl" | "hug" | "kiss" | "lick" | "propose" | "butts" | "bulge";
type AnimalEndpoints = "birb" | "blep" | "cheeta" | "fox" | "lynx" | "wolf";
interface Options {
userAgent?: string;
apiKey?: string;
debug?: (url: string, time: {
start: number;
end: number;
time: number;
}) => any;
baseURL?: string;
}
interface JSONResponse {
artists: string[];
sources: string[];
width: number;
height: number;
url: string;
type: string;
name: string;
shortURL: string;
reportURL: string;
ext: string;
}
interface ImageResponse {
data: JSONResponse;
image: Buffer;
}
interface E621Post {
id: number;
tags: string;
locked_tags?: string;
description: string;
created_at: {
json_class: string;
s: number;
n: number;
};
creator_id: number;
author: string;
change: number;
source: string;
score: number;
fav_count: number;
md5: string;
file_size: number;
file_url: string;
file_ext: string;
preview_url: string;
preview_width: number;
preview_height: number;
sample_url: string;
sample_width: number;
sample_height: number;
rating: "s" | "q" | "e";
status: "active" | "deleted" | string;
width: number;
height: number;
has_comments: boolean;
has_notes: boolean;
has_childeren: boolean;
childeren: string;
parent_id?: number;
artist: string[];
sources: string[];
}
}
export = FurryBotAPI;