import { ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Injector, ViewContainerRef } from '@angular/core';
import { ElPosition } from './overlay-position';
import { ElComponentPortal, ElPortalInjector, ElPortalOutletDirective, ElTemplatePortal } from './mapping';
export interface ElRenderableContainer {
    /**
     * A renderContent method renders content with provided context.
     * Naturally, this job has to be done by ngOnChanges lifecycle hook, but
     * ngOnChanges hook will be triggered only if we update content or context properties
     * through template property binding syntax. But in our case we're updating these properties programmatically.
     * */
    renderContent(): any;
}
export declare abstract class ElPositionedContainer {
    position: ElPosition;
    readonly top: boolean;
    readonly topStart: boolean;
    readonly topEnd: boolean;
    readonly right: boolean;
    readonly endTop: boolean;
    readonly endBottom: boolean;
    readonly bottom: boolean;
    readonly bottomStart: boolean;
    readonly bottomEnd: boolean;
    readonly left: boolean;
    readonly startTop: boolean;
    readonly startBottom: boolean;
}
export declare class ElOverlayContainerComponent {
    protected vcr: ViewContainerRef;
    protected injector: Injector;
    private changeDetectorRef;
    portalOutlet: ElPortalOutletDirective;
    isAttached: boolean;
    content: string;
    constructor(vcr: ViewContainerRef, injector: Injector, changeDetectorRef: ChangeDetectorRef);
    readonly isStringContent: boolean;
    attachComponentPortal<T>(portal: ElComponentPortal<T>, context?: Object): ComponentRef<T>;
    attachTemplatePortal<C>(portal: ElTemplatePortal<C>): EmbeddedViewRef<C>;
    attachStringContent(content: string): void;
    detach(): void;
    protected createChildInjector(cfr: ComponentFactoryResolver): ElPortalInjector;
}
