import { ConfigI } from "#src/config"; export declare enum METHOD { GET = "GET", POST = "POST", PATCH = "PATCH", DELETE = "DELETE" } /** * */ export default abstract class API { protected readonly config: ConfigI; /** * * @protected */ protected abstract readonly prefix: string; /** * * @param config */ protected constructor(config: ConfigI); /** * * @param url * @protected */ protected delete(url?: string): Promise; /** *= * @param url * @protected */ protected get(url?: string): Promise; /** * * @param params * @param url * @protected */ protected get(params: ParamsT, url?: string): Promise; /** * * @param data * @param url * @protected */ protected patch(data: BodyT, url?: string): Promise; /** * * @param data * @param url * @protected */ protected post(data: BodyT, url?: string): Promise; /** * * @param url * @protected */ protected url(url: string): string; /** * * @param request * @protected */ protected abstract request(request: RequestI): Promise; } export interface RequestI { body?: BodyT; method?: METHOD; params?: ParamsT; url?: string; } export declare type BodyT = Record; export declare type ParamsT = Record;