/// <reference types="react" />
import * as React from 'react';
import { StyleDeclaration } from 'aphrodite';
export interface DialogStyle extends StyleDeclaration {
    container: React.CSSProperties;
    dialog: React.CSSProperties;
    contentWrapper: React.CSSProperties;
}
export declare const defaultDialogStyle: DialogStyle;
export interface DialogProps<ContentProps> {
    content: (props: ContentProps) => JSX.Element;
    closeOnClickOutside?: boolean;
    contentProps?: ContentProps;
    style?: Partial<DialogStyle>;
}
export interface DialogState {
    hidden: boolean;
    closeOnClickOutside: boolean;
}
export declare class Dialog<ContentProps> extends React.Component<DialogProps<ContentProps>, DialogState> {
    private mouseOver;
    constructor(props: DialogProps<ContentProps>);
    render(): JSX.Element;
    show: () => void;
    hide: () => void;
    componentWillUnmount(): void;
    private onMouseEnter;
    private onMouseleave;
    private windowMouseDown;
    private clicked;
}
export default Dialog;
