import { Provider, Type } from '@angular/core';
import { MatomoFeature as MatomoFeature } from 'ngx-matomo-client/core';
import { MatomoRouterConfiguration } from './configuration';
import { MatomoRouterInterceptor, MatomoRouterInterceptorFn } from './interceptor';
import { PageUrlProvider, PageUrlProviderFn } from './page-url-provider';
/**
 * Additional Matomo router features kind
 */
export declare const enum RouterMatomoFeatureKind {
    /** @see withRouter */
    Router = "Router",
    /** @see withRouterInterceptors */
    RouterInterceptors = "RouterInterceptors",
    /** @see withRouteData */
    BuiltInRouteDataInterceptor = "BuiltInRouteDataInterceptor",
    PageUrlProvider = "PageUrlProvider"
}
/** Enable automatic page views tracking */
export declare function withRouter(config?: MatomoRouterConfiguration): MatomoFeature;
export declare function buildInternalRouterProviders(config?: MatomoRouterConfiguration): Provider[];
/** Add some matomo router interceptors */
export declare function withRouterInterceptors(interceptors: (Type<MatomoRouterInterceptor> | MatomoRouterInterceptorFn)[]): MatomoFeature;
/**
 * Enable retrieval of tracking information from route data
 *
 * @see MatomoRouteData
 * @param key A custom key to get lookup route data - default is 'matomo'
 */
export declare function withRouteData(key?: string): MatomoFeature;
export declare function withPageUrlProvider(provider: Type<PageUrlProvider> | PageUrlProviderFn): MatomoFeature;
