import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { ApiPageRequest } from './interfaces/pages.interface';
import { ApiConfig } from './interfaces/config.interface';
import { ApiMapper } from './api.mapper';
export declare class Api {
    private _http;
    private _mapper;
    private _config;
    private readonly _baseUrl;
    constructor(_http: HttpClient, _mapper: ApiMapper, _config: ApiConfig);
    page<T = any>(endpoint: string, params?: Partial<ApiPageRequest>, options?: {
        headers?: {
            [header: string]: string | string[];
        };
        params?: {
            [param: string]: string | string[];
        };
    }): import("rxjs").Observable<{
        pageSize: number;
        pageNumber: number;
        totalPages: number;
        totalEntries: number;
        data: T[];
    }>;
    get<T = any>(endpoint: string, options?: {
        headers?: HttpHeaders | {
            [header: string]: string | string[];
        };
        params?: HttpParams | {
            [param: string]: string | string[];
        };
    }): import("rxjs").Observable<T>;
    post<T = any>(endpoint: string, body?: any): Promise<T>;
    put<T = any>(endpoint: string, body: any | null): Promise<T>;
    delete<T = any>(endpoint: string): Promise<T>;
    private toAbsoluteUrl;
}
