import * as React from 'react';
import { IgRect } from "./IgRect";
import { Popup } from './Popup';
import { IgrOnPopupEventArgs } from './igr-on-popup-event-args';
import { IgrOnClosedEventArgs } from './igr-on-closed-event-args';
import { IgrFocusEventArgs } from './igr-focus-event-args';
import { PopupDirection } from "./PopupDirection";
import { PopupAlignment } from "./PopupAlignment";
import { PopupAnimationType } from "./PopupAnimationType";
import { PopupPointerPosition } from "./PopupPointerPosition";
import { IgrPopupMeasuringContentSizeEventArgs } from './igr-popup-measuring-content-size-event-args';
export declare class IgrPopup extends React.Component<IIgrPopupProps> {
    private _height;
    private _width;
    private _initialized;
    private _elRef;
    private _contentAreaInnerRef;
    private _contentAreaOuterRef;
    private _reactRenderer;
    private _implementation;
    private _portalManager;
    set height(value: string);
    get height(): string;
    set width(value: string);
    get width(): string;
    private _getMainRef;
    private verifyReferences;
    render(): React.DetailedReactHTMLElement<{
        ref: (ref: any) => void;
        children: any[];
    }, any>;
    private requestRender;
    constructor(props: IIgrPopupProps);
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    protected initializeProperties(): void;
    updateStyle(): void;
    destroy(): void;
    componentWillUnmount(): void;
    componentDidMount(): void;
    initializeContent(): void;
    protected createImplementation(): Popup;
    get i(): Popup;
    get isFocusable(): boolean;
    set isFocusable(v: boolean);
    /**
     * Gets or sets the duration of the Popup and Closeup animations in milliseconds.
    */
    get animationDuration(): number;
    set animationDuration(v: number);
    /**
     * Gets or sets whether the popup and closeup animations are animated.
    */
    get animationEnabled(): boolean;
    set animationEnabled(v: boolean);
    /**
     * Gets or sets the type of animation to use when the popup opens and closes.
    */
    get animationType(): PopupAnimationType;
    set animationType(v: PopupAnimationType);
    /**
     * Gets or sets the elevation to use for the button regardless of type.
    */
    get elevation(): number;
    set elevation(v: number);
    /**
     * Gets or sets the elevation of the border shadow
    */
    get actualElevation(): number;
    set actualElevation(v: number);
    /**
     * Gets / sets the isShown state of the panel.
    */
    get isShown(): boolean;
    /**
     * Gets or sets the color to use for the check mark when the checkbox is checked.
    */
    get actualUmbraShadowColor(): string;
    set actualUmbraShadowColor(v: string);
    /**
     * Gets or sets the color to use for the check mark when the checkbox is checked.
    */
    get actualPenumbraShadowColor(): string;
    set actualPenumbraShadowColor(v: string);
    /**
     * Gets or sets the color to use for the check mark when the checkbox is checked.
    */
    get actualAmbientShadowColor(): string;
    set actualAmbientShadowColor(v: string);
    /**
     * Gets or sets the background color of the popup.
    */
    get background(): string;
    set background(v: string);
    get cornerRadius(): number;
    set cornerRadius(v: number);
    /**
     * Gets or sets whether to disable hit testing on the popup.
    */
    get isHitTestVisible(): boolean;
    set isHitTestVisible(v: boolean);
    /**
     * Gets or sets whether to disable hit testing during the open and close animations.
    */
    get disableHitTestDuringAnimation(): boolean;
    set disableHitTestDuringAnimation(v: boolean);
    /**
     * Gets or sets whether to show a pointer off the side of the popup towards the popup target.
    */
    get isPointerEnabled(): boolean;
    set isPointerEnabled(v: boolean);
    /**
     * Gets or sets the pointer position.
    */
    get pointerPosition(): PopupPointerPosition;
    set pointerPosition(v: PopupPointerPosition);
    /**
     * Gets or sets the pointer background color.
    */
    get pointerBackground(): string;
    set pointerBackground(v: string);
    /**
     * Gets or sets the pointer size.
    */
    get pointerSize(): number;
    set pointerSize(v: number);
    /**
     * Gets whether the popup is in the middle of opening or not.
    */
    get isShowing(): boolean;
    set isShowing(v: boolean);
    /**
     * Gets whether the popup is in the middle of closing or not.
    */
    get isClosing(): boolean;
    set isClosing(v: boolean);
    /**
     * Indicates that the popup will position itself relative to the window instead of the document.
    */
    get isFixed(): boolean;
    set isFixed(v: boolean);
    /**
     * Indicates that the popup will place itself into the browser top layer.
    */
    get useTopLayer(): boolean;
    set useTopLayer(v: boolean);
    findByName(name: string): any;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected get hasUserValues(): Set<string>;
    protected __m(propertyName: string): void;
    protected _stylingContainer: any;
    protected _stylingParent: any;
    protected _inStyling: boolean;
    protected _styling(container: any, component: any, parent?: any): void;
    /**
 * Closes the popup.

*/
    close(): void;
    showRelativeToExclusionRect(exclusionRect: IgRect, popupDirection: PopupDirection, popupAlignment: PopupAlignment): void;
    /**
     * Exports visual information about the current state of the grid.
    
    */
    exportVisualModel(): any;
    /**
     * Returns a serialized copy of the exported visual model
    
    */
    exportSerializedVisualModel(): string;
    private _onClosed;
    private _onClosed_wrapped;
    get onClosed(): (s: IgrPopup, e: IgrOnClosedEventArgs) => void;
    set onClosed(ev: (s: IgrPopup, e: IgrOnClosedEventArgs) => void);
    private _onPopup;
    private _onPopup_wrapped;
    /**
     * Fires when the popup is shown
    */
    get onPopup(): (s: IgrPopup, e: IgrOnPopupEventArgs) => void;
    set onPopup(ev: (s: IgrPopup, e: IgrOnPopupEventArgs) => void);
    private _popupGotFocus;
    private _popupGotFocus_wrapped;
    /**
     * Fired when the open popup gains focus.
    */
    get popupGotFocus(): (s: IgrPopup, e: IgrFocusEventArgs) => void;
    set popupGotFocus(ev: (s: IgrPopup, e: IgrFocusEventArgs) => void);
    private _popupLostFocus;
    private _popupLostFocus_wrapped;
    /**
     * Fired when the open popup loses focus.
    */
    get popupLostFocus(): (s: IgrPopup, e: IgrFocusEventArgs) => void;
    set popupLostFocus(ev: (s: IgrPopup, e: IgrFocusEventArgs) => void);
    private _measuringContentSize;
    private _measuringContentSize_wrapped;
    get measuringContentSize(): (s: IgrPopup, e: IgrPopupMeasuringContentSizeEventArgs) => void;
    set measuringContentSize(ev: (s: IgrPopup, e: IgrPopupMeasuringContentSizeEventArgs) => void);
}
export interface IIgrPopupProps {
    width?: string;
    height?: string;
    children?: React.ReactNode;
    isFocusable?: boolean | string;
    /**
     * Gets or sets the duration of the Popup and Closeup animations in milliseconds.
    */
    animationDuration?: number | string;
    /**
     * Gets or sets whether the popup and closeup animations are animated.
    */
    animationEnabled?: boolean | string;
    /**
     * Gets or sets the type of animation to use when the popup opens and closes.
    */
    animationType?: PopupAnimationType | string;
    /**
     * Gets or sets the elevation to use for the button regardless of type.
    */
    elevation?: number | string;
    /**
     * Gets or sets the elevation of the border shadow
    */
    actualElevation?: number | string;
    /**
     * Gets or sets the color to use for the check mark when the checkbox is checked.
    */
    actualUmbraShadowColor?: string;
    /**
     * Gets or sets the color to use for the check mark when the checkbox is checked.
    */
    actualPenumbraShadowColor?: string;
    /**
     * Gets or sets the color to use for the check mark when the checkbox is checked.
    */
    actualAmbientShadowColor?: string;
    /**
     * Gets or sets the background color of the popup.
    */
    background?: string;
    cornerRadius?: number | string;
    /**
     * Gets or sets whether to disable hit testing on the popup.
    */
    isHitTestVisible?: boolean | string;
    /**
     * Gets or sets whether to disable hit testing during the open and close animations.
    */
    disableHitTestDuringAnimation?: boolean | string;
    /**
     * Gets or sets whether to show a pointer off the side of the popup towards the popup target.
    */
    isPointerEnabled?: boolean | string;
    /**
     * Gets or sets the pointer position.
    */
    pointerPosition?: PopupPointerPosition | string;
    /**
     * Gets or sets the pointer background color.
    */
    pointerBackground?: string;
    /**
     * Gets or sets the pointer size.
    */
    pointerSize?: number | string;
    /**
     * Gets whether the popup is in the middle of opening or not.
    */
    isShowing?: boolean | string;
    /**
     * Gets whether the popup is in the middle of closing or not.
    */
    isClosing?: boolean | string;
    /**
     * Indicates that the popup will position itself relative to the window instead of the document.
    */
    isFixed?: boolean | string;
    /**
     * Indicates that the popup will place itself into the browser top layer.
    */
    useTopLayer?: boolean | string;
    onClosed?: (s: IgrPopup, e: IgrOnClosedEventArgs) => void;
    /**
     * Fires when the popup is shown
    */
    onPopup?: (s: IgrPopup, e: IgrOnPopupEventArgs) => void;
    /**
     * Fired when the open popup gains focus.
    */
    popupGotFocus?: (s: IgrPopup, e: IgrFocusEventArgs) => void;
    /**
     * Fired when the open popup loses focus.
    */
    popupLostFocus?: (s: IgrPopup, e: IgrFocusEventArgs) => void;
    measuringContentSize?: (s: IgrPopup, e: IgrPopupMeasuringContentSizeEventArgs) => void;
}
