import React from 'react'; import type { IModalProps } from './Modal'; /** The Modal content Component will be passed these two props */ export interface IModalComponentProps { closeModal?(result?: C): void; dismissModal?(result?: D): void; } interface ModalCloseResult { status: 'CLOSED'; closeResult: T; } interface ModalDismissResult { status: 'DISMISSED'; dismissResult?: T; } export type IModalResult = ModalCloseResult | ModalDismissResult; /** * An imperative API for showing a react component as a modal. * * example: * const MyComponent = ({ closeModal, dismissModal }) => { *

Modal Contents!

* * * * } * * ... * * showModal(MyComponent).then(result => { * this.setState({ result }); * }); * * @param ModalComponent the component to be rendered inside a modal * @param componentProps to pass to the ModalComponent * @param modalProps props to pass to the modal itself * @returns {Promise} */ export declare const showModal: (ModalComponent: React.ComponentType

>, componentProps?: P, modalProps?: Omit) => Promise>; export {};