import { OnDestroy, OnInit } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { Destroyable } from '@bespunky/angular-zen/core';
import { RouterOutletComponentBus } from './router-outlet-component-bus.service';
import * as i0 from "@angular/core";
/**
* Hooks into a router outlet's events and publishes the current component to the [`RouterOutletComponentBus`](/injectables/RouterOutletComponentBus.html) to create a mapping
* of component instances by outlet name.
*
* Components instantiated by outlets marked with `publishComponent` will be accessible by outlet name in the bus service.
*
* @example
*
*
*
*
*
* @See `RouterOutletComponentBus` for more details.
*
* @export
* @class PublishComponentDirective
* @extends {Destroyable}
* @implements {OnInit}
*/
export declare class PublishComponentDirective extends Destroyable implements OnInit, OnDestroy {
private outlet;
private componentBus;
private outletName;
constructor(outlet: RouterOutlet, componentBus: RouterOutletComponentBus, outletName: string);
/**
* Registers to outlet events to publish the activated and deactivated components to the bus. *
*/
ngOnInit(): void;
/**
* Unpublishes the outlet from the bus.
*/
ngOnDestroy(): void;
private updateComponentOnBus;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}