import { LocationStrategy } from '@angular/common';
import { InjectionToken, Injector, Provider, Type } from '@angular/core';
import { NavigationEnd } from '@angular/router';
import { Observable } from 'rxjs';
import { InternalRouterConfiguration } from './configuration';
export declare const MATOMO_PAGE_URL_PROVIDER: InjectionToken<PageUrlProvider>;
export declare function createDefaultPageUrlProvider(): DefaultPageUrlProvider;
export interface PageUrlProvider {
    getCurrentPageUrl(event: NavigationEnd): Observable<string> | Promise<string>;
}
export type PageUrlProviderFn = (event: NavigationEnd) => Observable<string> | Promise<string>;
export declare class PageUrlProviderFnAdapter implements PageUrlProvider {
    private readonly fn;
    private readonly injector;
    constructor(fn: PageUrlProviderFn, injector: Injector);
    getCurrentPageUrl(event: NavigationEnd): Observable<string> | Promise<string>;
}
export declare function providePageUrlProvider(typeOrFn: Type<PageUrlProvider> | PageUrlProviderFn): Provider;
export declare class DefaultPageUrlProvider implements PageUrlProvider {
    private readonly config;
    private readonly baseHref;
    private readonly locationStrategy;
    constructor(config: InternalRouterConfiguration, baseHref: string | null, locationStrategy: LocationStrategy);
    getCurrentPageUrl(event: NavigationEnd): Observable<string>;
    private getBaseHrefWithoutTrailingSlash;
}
