import { AxiosInstance } from "axios";
import type { BaseServiceParameters, ServiceRequestOptions } from "../../types/api/service/baseService";
import type { ClientContextProvider } from "../../types/api/context/clientContext";
import type { BaseResult } from "../../types/banking/common/baseresult";
import { ApiResponse, CookiesHelper, ErrorHandler } from "../..";
declare abstract class BaseService {
    protected abstract endpoint: string;
    protected context: ClientContextProvider;
    protected cookiesHelper: CookiesHelper;
    protected axiosInstance: AxiosInstance;
    protected errorHandler: ErrorHandler;
    constructor(data: BaseServiceParameters);
    private onRequest;
    private onResponse;
    private onError;
    protected GET<T extends BaseResult>(url: string, options?: ServiceRequestOptions): Promise<ApiResponse<T>>;
    protected POST<T extends BaseResult>(url: string, data: object | string, options?: ServiceRequestOptions): Promise<ApiResponse<T>>;
    protected PUT<T extends BaseResult>(url: string, data: object | string, options?: ServiceRequestOptions): Promise<ApiResponse<T>>;
    protected DELETE<T extends BaseResult>(url: string, options?: ServiceRequestOptions): Promise<ApiResponse<T>>;
    protected resolveURL(path?: string | number): string;
    private buildConfig;
    private buildFlagHeaders;
}
export { BaseService };
