import { ElementRef, SimpleChange, Type } from '@angular/core';
import { ElTrigger, ElTriggerStrategy, ElTriggerStrategyBuilderService } from '../overlay-trigger';
import { ElAdjustableConnectedPositionStrategy, ElAdjustment, ElPosition, ElPositionBuilderService } from '../overlay-position';
import { ElRenderableContainer } from '../overlay-container';
import { ElOverlayContent } from '../overlay-service';
import { ElDynamicOverlay } from './dynamic-overlay';
import { ElOverlayConfig } from '../mapping';
export declare class ElDynamicOverlayChange extends SimpleChange {
    constructor(previousValue: any, currentValue: any, firstChange?: boolean);
    isChanged(): boolean;
}
export declare class ElDynamicOverlayHandler {
    private positionBuilder;
    private triggerStrategyBuilder;
    private dynamicOverlayService;
    protected _componentType: Type<ElRenderableContainer>;
    protected _host: ElementRef;
    protected _context: Object;
    protected _content: ElOverlayContent;
    protected _trigger: ElTrigger;
    protected _position: ElPosition;
    protected _adjustment: ElAdjustment;
    protected _offset: number;
    protected _overlayConfig: ElOverlayConfig;
    protected dynamicOverlay: ElDynamicOverlay;
    protected triggerStrategy: ElTriggerStrategy;
    protected positionStrategy: ElAdjustableConnectedPositionStrategy;
    protected changes: {
        [key: string]: ElDynamicOverlayChange;
    };
    constructor(positionBuilder: ElPositionBuilderService, triggerStrategyBuilder: ElTriggerStrategyBuilderService, dynamicOverlayService: ElDynamicOverlay);
    host(host: ElementRef): this;
    trigger(trigger: ElTrigger): this;
    position(position: ElPosition): this;
    adjustment(adjustment: ElAdjustment): this;
    componentType(componentType: Type<ElRenderableContainer>): this;
    content(content: ElOverlayContent): this;
    context(context: {}): this;
    offset(offset: number): this;
    overlayConfig(overlayConfig: ElOverlayConfig): this;
    build(): ElDynamicOverlay;
    rebuild(): ElDynamicOverlay;
    connect(): void;
    disconnect(): void;
    destroy(): void;
    protected createPositionStrategy(): ElAdjustableConnectedPositionStrategy;
    protected subscribeOnTriggers(dynamicOverlay: ElDynamicOverlay): void;
    protected isContainerRerenderRequired(): boolean;
    protected isPositionStrategyUpdateRequired(): boolean;
    protected isTriggerStrategyUpdateRequired(): boolean;
    protected isComponentTypeUpdateRequired(): boolean;
    private isOverlayConfigUpdateRequired;
    protected isComponentTypeUpdated(): boolean;
    protected isContentUpdated(): boolean;
    protected isContextUpdated(): boolean;
    protected isAdjustmentUpdated(): boolean;
    protected isPositionUpdated(): boolean;
    protected isHostUpdated(): boolean;
    protected isTriggerUpdated(): boolean;
    protected isOffsetUpdated(): boolean;
    protected isOverlayConfigUpdated(): boolean;
    protected clearChanges(): void;
}
