import type * as React from "react";
import type { ValueOrFunction, Renderable, Toast as HotToast, ToastType, DefaultToastOptions } from "react-hot-toast";
import type * as Common from "../common/types";
export type Placement = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
export interface Props extends Common.Globals {
    readonly topOffset?: number;
    readonly leftOffset?: number;
    readonly rightOffset?: number;
    readonly bottomOffset?: number;
    readonly gutter?: number;
    readonly dismissTimeout?: number;
    readonly placement?: Placement;
    readonly useTopSafeAreaInset?: boolean;
}
interface ToastProps {
    readonly id: string;
    readonly icon?: Renderable;
    readonly visible?: boolean;
    readonly children: React.ReactNode;
    readonly dismissTimeout?: number;
    readonly onMouseEnter: () => void;
    readonly onMouseLeave: () => void;
    readonly onDismiss: () => void;
    readonly placement: Placement;
    readonly offset?: number;
    readonly ariaLive: "polite" | "assertive" | "off";
    readonly role: "status" | "alert";
}
export interface Options<T> {
    readonly loading: Renderable;
    readonly success: ValueOrFunction<Renderable, T>;
    readonly error: ValueOrFunction<Renderable, any>;
}
export type ToastOptions = Pick<DefaultToastOptions, "icon" | "ariaProps">;
export type createToast = (message: ValueOrFunction<Renderable, HotToast>, options?: ToastOptions) => void;
export type createToastPromise = <T>(promise: Promise<T>, messages: Options<T>, options?: ToastOptions & Partial<Record<ToastType, ToastOptions>>) => Promise<T>;
export type Toast = ToastProps;
export {};
//# sourceMappingURL=types.d.ts.map