import type { Client } from "../generated/client/types.js"; import type E621 from "../index.js"; interface AnyResponse { data?: D; error: unknown; request: Request; response: Response; } type AnyDataClass = new (e621: E621, data: D) => T; type DataType = R extends AnyResponse ? Exclude : never; type UnwrapData = DataType extends Array ? U : DataType; /** @category Modules */ export default abstract class Base { protected client: Client; protected e621: E621; constructor(e621: E621, client: Client); /** @internal */ protected _handleResponse> | undefined = undefined, CR = C extends AnyDataClass, infer I> ? I : undefined>(res: R, successStatus?: S, throwOnNotFound?: T, klass?: C): T extends true ? (S extends 204 ? null : S extends 302 ? string : C extends undefined ? DataType : (DataType extends Array ? Array : CR)) : (S extends 204 ? null : S extends 302 ? string : (C extends undefined ? DataType : (DataType extends Array ? Array : CR)) | null); } export {};