import { DisclosureCallback, UseDisclosureProps } from "./use-disclosure.js";

//#region src/hooks/use-disclosure/use-promise-disclosure.d.ts
interface UsePromiseDisclosureProps<Y = never, M = never, D = never, H = Promise<void> | void, R = Promise<void> | void> extends UseDisclosureProps<M, D | Y, H, R> {
  disableCloseOnSuccess?: boolean;
  error?: unknown;
}
/**
 * `usePromiseDisclosure` is a custom hook that helps handle common open/close or toggle scenarios with promises.
 * It can be used to control components such as `Modal`, `Dialog`, `Drawer`, etc.
 *
 * @see https://yamada-ui.com/docs/hooks/use-promise-disclosure
 */
declare const usePromiseDisclosure: <Y = never, M = never, D = never, H = Promise<void> | void, R = Promise<void> | void>({
  disableCloseOnSuccess,
  error,
  ...rest
}?: UsePromiseDisclosureProps<Y, M, D, H, R>) => {
  open: boolean;
  onClose: DisclosureCallback<D, R>;
  onOpen: DisclosureCallback<M, [Y] extends [never] ? Promise<void> : Promise<Y>>;
  onSuccess: DisclosureCallback<Y, R>;
  onToggle: DisclosureCallback<Y | D, R> | DisclosureCallback<M, H>;
};
type UsePromiseDisclosureReturn<Y = never, M = never, D = never, H = Promise<void> | void, R = Promise<void> | void> = ReturnType<typeof usePromiseDisclosure<Y, M, D, H, R>>;
//#endregion
export { UsePromiseDisclosureProps, UsePromiseDisclosureReturn, usePromiseDisclosure };
//# sourceMappingURL=use-promise-disclosure.d.ts.map