import { ResponseType } from 'axios';
import { BringgException } from '../Core/BringgException';
import URLEndpoint from '../Core/Http/URLEndpoint';
import Session from './Identity/Session';
import { Route } from './Route';
import { Service } from './Service';
export declare const HTTP_EVENTS: {
    HTTP_REQUEST_FAILURE: string;
};
export declare abstract class SessionBasedService implements Service {
    _endpoint: URLEndpoint;
    _session: Session;
    constructor(endpoint: URLEndpoint, session: Session);
    get sendDataEvent(): (name: string, message?: object) => void;
    get endpoint(): URLEndpoint;
    get session(): Session;
    handleAuthorizedRequest<ResponseFormat, ReturnType>({ route, extractor, exceptionProducer, payload, routeParams, queryString, headers, responseType, timeout, signal }: {
        route: Route;
        extractor: (response: ResponseFormat) => ReturnType;
        exceptionProducer: () => BringgException;
        payload?: any;
        routeParams?: any;
        queryString?: any;
        headers?: any;
        responseType?: ResponseType;
        timeout?: number;
        signal?: AbortSignal;
    }): Promise<ReturnType>;
    private notifyHttpError;
}
type HttpRequestInfo = {
    route: Route;
    payload: object;
    routeParams: object;
    queryString: object;
    headers: object;
    clientId: string;
    authenticationToken: string;
};
export type HttpErrorInfo = {
    request: HttpRequestInfo;
    response: any;
};
export {};
