import { DestroyRef, Injector, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { ApiService } from '@c8y/ngx-components/api';
import { Observable } from 'rxjs';
import { TabsService } from '../tabs/tabs.service';
import { RouterTabsResolver } from './router-tabs.resolver';
import * as i0 from "@angular/core";
/**
 * A service which is injected into the context route component to handle the context data.
 */
export declare class ScopedContextRouteService implements OnDestroy {
    private tabsResolver;
    private tabsService;
    private router;
    private apiService;
    private injector;
    private destroyRef;
    private lastAddedTabs;
    private refreshTrigger$;
    private ID_REGEX;
    /**
     * The context used by this service.
     */
    private currentContext;
    constructor(tabsResolver: RouterTabsResolver, tabsService: TabsService, router: Router, apiService: ApiService, injector: Injector, destroyRef: DestroyRef);
    /**
     * Indicates that the data is loading
     * @returns An boolean observable which indicates if the data is loading.
     */
    isLoading$(): Observable<boolean>;
    /**
     * Initializes the context route.
     * @param route The current activated route.
     */
    init(route: ActivatedRoute): void;
    /**
     * Destroys the service.
     */
    ngOnDestroy(): void;
    /**
     * Refreshes the context.
     */
    refreshContext(): void;
    /**
     * Sets an API hook to refresh the contextData on changes.
     * @param activatedRoute The current activated route.
     */
    private updatedContext;
    private updateTabs;
    private redirectToFirstTab;
    private needsRedirectLegacy;
    private needsRedirect;
    private getMatchingContextRoute;
    static ɵfac: i0.ɵɵFactoryDeclaration<ScopedContextRouteService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ScopedContextRouteService>;
}
//# sourceMappingURL=scoped-context-route.service.d.ts.map