import { Portal } from "@angular/cdk/portal";
import { AfterViewInit, ComponentRef, EventEmitter, Injector, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges } from "@angular/core";
import { IEvent, LoggerService } from "@nova-ui/bits";
import { ProviderRegistryService } from "../../../services/provider-registry.service";
import { IProviderConfiguration } from "../../../types";
import { ComponentPortalService } from "../../services/component-portal.service";
export declare class ComponentPortalDirective implements OnInit, AfterViewInit, OnDestroy, OnChanges {
    private injector;
    private logger;
    private portalService;
    private renderer;
    private providerRegistry;
    componentId: string;
    componentType: string | Function;
    properties: Record<string, any>;
    providers: Record<string, IProviderConfiguration>;
    outputs: string[];
    output: EventEmitter<IEvent<any>>;
    portal: Portal<any>;
    private component;
    private propertiesChanges;
    private providerInstances;
    private readonly destroy$;
    private changesSubscription?;
    private listenerUnsubscriber?;
    constructor(injector: Injector, logger: LoggerService, portalService: ComponentPortalService, renderer: Renderer2, providerRegistry: ProviderRegistryService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    attached(componentRef: ComponentRef<any>): void;
    private recreatePortal;
    private updateProviders;
    private updateProviderConfigurations;
    private subscribeToOutputs;
    private checkForProviderChanges;
    private destroyProviders;
    /**
     * There was a change in component properties, so we need to handle that here
     *
     * @param change a change of the `properties` input
     */
    private applyPropertiesChange;
}
