import * as React from "react"; import { type Milliseconds } from "./ModalTransitions"; interface Options { concurrencyMode?: ConcurrencyMode; transitionDuration?: Milliseconds; } type ConcurrencyMode = "stack" | "replace" | "ignore"; type RenderFunction

= (props: P) => React.ReactElement | null | undefined; interface RenderProps { show: boolean; stage: "open" | "opening" | "closing"; onDismiss: () => void; onSubmit: (value: Exclude) => void; } export declare function usePromiseModal(render: RenderFunction>, options?: Options): { modal: React.ReactElement; invoke: () => Promise; isDisplayed: boolean; }; export declare function usePromiseModal(render: RenderFunction & Omit>>, options?: Options): { modal: React.ReactElement; invoke: (args: Args) => Promise; isDisplayed: boolean; }; export {};