kutt
Version:
Node.js & browser (TypeScript) client for Kutt url shortener
77 lines (76 loc) • 1.67 kB
TypeScript
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<Response = unknown>(url?: string): Promise<Response>;
/**
*=
* @param url
* @protected
*/
protected get<Response = unknown>(url?: string): Promise<Response>;
/**
*
* @param params
* @param url
* @protected
*/
protected get<Response = unknown>(params: ParamsT, url?: string): Promise<Response>;
/**
*
* @param data
* @param url
* @protected
*/
protected patch<Response = unknown>(data: BodyT, url?: string): Promise<Response>;
/**
*
* @param data
* @param url
* @protected
*/
protected post<Response = unknown>(data: BodyT, url?: string): Promise<Response>;
/**
*
* @param url
* @protected
*/
protected url(url: string): string;
/**
*
* @param request
* @protected
*/
protected abstract request<Response = unknown>(request: RequestI): Promise<Response>;
}
export interface RequestI {
body?: BodyT;
method?: METHOD;
params?: ParamsT;
url?: string;
}
export declare type BodyT = Record<string, unknown>;
export declare type ParamsT = Record<string, boolean | number | string>;