import { OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { TabsService } from './tabs.service';
import * as i0 from "@angular/core";
/**
 * Register this component on the parent route of a view with multiple tabs where the first tab
 * is displayed only conditionally.
 *
 * Given the following routes leading to a single view with multiple tabs:<br>
 * /yourpath/tab-a -> Tab A<br>
 * /yourpath/tab-b -> Tab B<br>
 * /yourpath/tab-c -> Tab C
 *
 * Your components will be registered like
 * ```typescript
 * export const routes: Route[] = [
 *   {
 *     path: 'yourpath/tab-a',
 *     component: TabAComponent
 *   },
 *   {
 *     path: 'yourpath/tab-b',
 *     component: TabBComponent
 *   },
 *   {
 *     path: 'yourpath/tab-c',
 *     component: TabCComponent
 *   }
 * ];
 * ```
 *
 * In the simple case where Tab A is the first tab on the view and it is always displayed, you can register
 * your view in the navigation with a similar navigator node:
 *
 * ```typescript
 * new NavigatorNode({
 *   label: gettext('My tabs'),
 *   path: 'yourpath/tab-a',
 *   icon: 'gears',
 *   parent: gettext('Some parent node'),
 *   priority: 100
 * })
 * ```
 *
 * This will navigate to the first tab's component and activate the first tab in the view.
 *
 * In case Tab A is displayed conditionally you cannot link it from a navigator node since it may not be available in some cases.
 * In this situation `ConditionalTabsOutletComponent` comes handy as it will forward users to the first available tab on your view:
 *
 * ```typescript
 * new NavigatorNode({
 *   label: gettext('My tabs'),
 *   path: 'yourpath', // note that here we use only the parent route
 *   icon: 'gears',
 *   parent: gettext('Some parent node'),
 *   priority: 100
 * })
 *
 * [...]
 *
 * export const routes: Route[] = [
 *   {
 *     path: 'yourpath',
 *     component: ConditionalTabsOutletComponent // we register ConditionalTabsOutletComponent for the parent path
 *   },
 *   {
 *     path: 'yourpath/tab-a',
 *     component: TabAComponent
 *   },
 *   {
 *     path: 'yourpath/tab-b',
 *     component: TabBComponent
 *   },
 *   {
 *     path: 'yourpath/tab-c',
 *     component: TabCComponent
 *   }
 * ];
 * ```
 */
export declare class ConditionalTabsOutletComponent implements OnInit, OnDestroy {
    private tabsService;
    private router;
    private endSubscriptions$;
    constructor(tabsService: TabsService, router: Router);
    ngOnInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConditionalTabsOutletComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ConditionalTabsOutletComponent, "c8y-conditional-tabs-outlet", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=conditional-tabs-outlet.component.d.ts.map