import { CdkPortalOutlet, ComponentPortal, PortalInjector, TemplatePortal } from '@angular/cdk/portal';
import { ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Injector, ViewContainerRef } from '@angular/core';
import { RPosition } from './overlay-position';
export interface RRenderableContainer {
    /**
     * 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 class RPositionedContainerComponent {
    position: RPosition;
    get top(): boolean;
    get topStart(): boolean;
    get topEnd(): boolean;
    get right(): boolean;
    get endTop(): boolean;
    get endBottom(): boolean;
    get bottom(): boolean;
    get bottomStart(): boolean;
    get bottomEnd(): boolean;
    get left(): boolean;
    get startTop(): boolean;
    get startBottom(): boolean;
}
export declare class ROverlayContainerComponent {
    protected vcr: ViewContainerRef;
    protected injector: Injector;
    private changeDetectorRef;
    portalOutlet: CdkPortalOutlet;
    isAttached: boolean;
    content: string;
    constructor(vcr: ViewContainerRef, injector: Injector, changeDetectorRef: ChangeDetectorRef);
    get isStringContent(): boolean;
    attachComponentPortal<T>(portal: ComponentPortal<T>, context?: Object): ComponentRef<T>;
    attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
    attachStringContent(content: string): void;
    detach(): void;
    protected createChildInjector(cfr: ComponentFactoryResolver): PortalInjector;
}
