import Page from './Page';
export default class BaseAPIService<T, U, V, X> {
    protected baseURL: string;
    protected token: string;
    protected version: string;
    protected subUrl: string;
    constructor(baseURL: string, subUrl: string, token: string);
    list(): Promise<T[]>;
    listByPath(path: string): Promise<T[]>;
    get(path: string): Promise<T>;
    getString(path: string): Promise<string>;
    getArrayBuffer(path: string): Promise<ArrayBuffer>;
    putWithContentType(path: string, payload: U, contentType: string): Promise<T | void>;
    postWithContentType(path: string, payload: V, contentType: string): Promise<T | void>;
    postFormData(path: string, data: FormData): Promise<T | void>;
    filterWithContentType(payload: X, contentType: string): Promise<Page<T>>;
    filterString(payload: X, path: string): Promise<string>;
    delete(path: string): Promise<void>;
    deleteWithReturn(path: string): Promise<T>;
    put(path: string, payload: U): Promise<T | void>;
    putNoPayload(path: string): Promise<T | void>;
    post(path: string, payload: V): Promise<T | void>;
    postNoPayload(path: string): Promise<T | void>;
    clone(payload: T): Promise<T | void>;
    filter(payload: X): Promise<Page<T>>;
}
