import { IPositionStrategy } from './position/IPositionStrategy';
import { IScrollStrategy } from './scroll';
import { AnimationReferenceMetadata, AnimationPlayer } from '@angular/animations';
import { ComponentRef, ElementRef } from '@angular/core';
export declare enum HorizontalAlignment {
    Left = -1,
    Center = -0.5,
    Right = 0,
}
export declare enum VerticalAlignment {
    Top = -1,
    Middle = -0.5,
    Bottom = 0,
}
export declare class Rectangle {
    x: number;
    y: number;
    w: number;
    h: number;
    constructor(x: number, y: number, w: number, h: number);
}
export declare class Point {
    x: number;
    y: number;
    constructor(x: number, y: number);
}
export interface PositionSettings {
    target?: Point | HTMLElement;
    horizontalDirection?: HorizontalAlignment;
    verticalDirection?: VerticalAlignment;
    horizontalStartPoint?: HorizontalAlignment;
    verticalStartPoint?: VerticalAlignment;
    openAnimation?: AnimationReferenceMetadata;
    closeAnimation?: AnimationReferenceMetadata;
}
export interface OverlaySettings {
    positionStrategy?: IPositionStrategy;
    scrollStrategy?: IScrollStrategy;
    modal?: boolean;
    closeOnOutsideClick?: boolean;
}
export interface OverlayEventArgs {
    /** Id of the overlay as returned by the `show()` method */
    id: string;
    /** Available when `Type<T>` is provided to the `show()` method and allows access to the created Component instance */
    componentRef?: ComponentRef<{}>;
}
export declare function getPointFromPositionsSettings(settings: PositionSettings): Point;
export interface OverlayInfo {
    id?: string;
    elementRef?: ElementRef;
    componentRef?: ComponentRef<{}>;
    settings?: OverlaySettings;
    initialSize?: {
        width?: number;
        height?: number;
        x?: number;
        y?: number;
    };
    hook?: HTMLElement;
    openAnimationPlayer?: AnimationPlayer;
    closeAnimationPlayer?: AnimationPlayer;
}
