import React from 'react';
import type { ModalProps } from 'react-bootstrap';
import type { IModalComponentProps } from './modal';
/** An imperative service for showing a react component as a modal */
export declare class ReactModal {
    /**
     * example:
     * const MyComponent = ({ closeModal, dismissModal }) => {
     *   <h1>Modal Contents!</h1>
     *   <button onClick={() => closeModal('A')}>Choice A</button>
     *   <button onClick={() => closeModal('B')}>Choice B</button>
     *   <button onClick={() => dismissModal('cancelled')}>Cancel</button>
     * }
     *
     * ...
     *
     * ModalService.show<string>(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 to pass to the Modal
     * @returns {Promise<T>}
     */
    static show<P extends IModalComponentProps, T = any>(ModalComponent: React.ComponentType<P>, componentProps?: P, modalProps?: Partial<ModalProps>): Promise<T>;
}
