type RequestFunc = (input: string, init?: RequestInit) => Promise; type RecursivePartial = { [P in keyof T]?: RecursivePartial; }; type AtLeastOne = { [P in keyof T]: Pick, P>; }[keyof T]; type AffectedResp = Promise<{ affected: number; }>; export interface SearchResponse { offset: number; limit: number; lastPage: boolean; data: T[]; } export declare class Endpoint { readonly endpoint: string; private req; constructor(endpoint: string, req: RequestFunc); search(params: URLSearchParams): Promise>; count(params: URLSearchParams): Promise<{ count: number; }>; getById(id: number | string): Promise; postAll(entities: T[]): Promise; post(entity: T): Promise; put(entity: T): AffectedResp; save(entity: T): Promise; patch(id: number | string, patch: AtLeastOne>): AffectedResp; delete(id: number | string): Promise; } export {};