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 {};