import * as i0 from '@angular/core';
import { ModuleWithProviders } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';

declare class IgoErrorModule {
    static forRoot(): ModuleWithProviders<IgoErrorModule>;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<IgoErrorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<IgoErrorModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<IgoErrorModule>;
}

declare class ErrorInterceptor implements HttpInterceptor {
    private messageService;
    intercept(originalReq: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
    private handleError;
    private handleCaughtError;
    private handleUncaughtError;
    static ɵfac: i0.ɵɵFactoryDeclaration<ErrorInterceptor, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ErrorInterceptor>;
}

declare class IgoLoggingModule {
    static forRoot(): ModuleWithProviders<IgoLoggingModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgoLoggingModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<IgoLoggingModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<IgoLoggingModule>;
}

declare class LoggingInterceptor implements HttpInterceptor {
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoggingInterceptor, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LoggingInterceptor>;
}

export { ErrorInterceptor, IgoErrorModule, IgoLoggingModule, LoggingInterceptor };
