import * as React from 'react';
import * as CSS from 'csstype';
import { IconProps } from '../Icon/Icon';
import List from '../List';
declare type WrapperProps = {
    width?: CSS.Property.Width;
    height?: CSS.Property.Height;
    active?: boolean;
};
declare type ButtonWrapperProps = {
    buttonsAlignment?: CSS.Property.JustifyContent;
};
export declare type ModalButtons = {
    value: string;
    onClick(event: React.MouseEvent): void;
};
export declare type ModalMenu = {
    name: string;
    list: React.ReactElement<typeof List>;
};
export declare type ModalDefaultPosition = {
    x: number;
    y: number;
};
export declare type ModalProps = {
    icon?: IconProps['name'];
    closeModal(event: React.MouseEvent): void;
    title: string;
    buttons?: Array<ModalButtons>;
    menu?: Array<ModalMenu>;
    defaultPosition?: ModalDefaultPosition;
} & Omit<WrapperProps, 'active'> & ButtonWrapperProps & React.HTMLAttributes<HTMLDivElement>;
declare const Modal: React.ForwardRefExoticComponent<{
    icon?: IconProps['name'];
    closeModal(event: React.MouseEvent): void;
    title: string;
    buttons?: ModalButtons[] | undefined;
    menu?: ModalMenu[] | undefined;
    defaultPosition?: ModalDefaultPosition | undefined;
} & Pick<WrapperProps, "height" | "width"> & ButtonWrapperProps & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export default Modal;
