import { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { MatomoRouterInterceptor } from '../interceptor';
/**
 * Simple interceptor base looking into route's data for tracking
 *
 * @see MatomoRouteDataInterceptor
 */
export declare abstract class MatomoRouteInterceptorBase<D> implements MatomoRouterInterceptor {
    protected readonly router: Router;
    beforePageTrack(event: NavigationEnd): Observable<void> | Promise<void> | void;
    protected getRoute(_: NavigationEnd): ActivatedRouteSnapshot;
    protected abstract extractRouteData(route: ActivatedRouteSnapshot): D;
    protected abstract processRouteData(data: D): Observable<void> | Promise<void> | void;
}
