import { AppService } from '../app/app.service';
import { BeforeRequestHook, ApiInstanceData } from './types';
export declare class ApiService {
    private baseEndpoint;
    private predefinedQuery;
    private predefinedBody;
    private beforeRequestHooks;
    app: AppService;
    constructor(app: AppService, instanceData?: ApiInstanceData);
    extend(): ApiService;
    setData(data: ApiInstanceData): ApiService;
    setEndpoint(endpoint: string): ApiService;
    addQuery(query: {}): ApiService;
    addBody(body: {}): ApiService;
    addBeforeHooks(hooks: BeforeRequestHook | BeforeRequestHook[]): ApiService;
    private buildEndpoint;
    private buildQuery;
    private buildBody;
    private buildUrl;
    private runHooks;
    private fetch;
    request(inputs?: {
        method?: string;
        endpoint?: string;
        query?: {};
        body?: {};
        cacheTime?: number;
    }): Promise<any>;
    get(endpoint?: string, query?: {}, cacheTime?: number): Promise<any>;
    post(endpoint?: string, query?: {}, body?: {}): Promise<any>;
    put(endpoint?: string, query?: {}, body?: {}): Promise<any>;
    patch(endpoint?: string, query?: {}, body?: {}): Promise<any>;
    delete(endpoint?: string, query?: {}, body?: {}): Promise<any>;
}
