import React, { Component, ComponentType, ReactNode } from "react"; import { ToastContainerProps } from "./ToastContainer"; import { ToastProps } from "./ToastElement"; import type { AddFn, UpdateFn, RemoveFn, Callback, ToastsType, Options, Placement, Id, ToastType } from "./types"; type Components = { Toast: ComponentType; ToastContainer: ComponentType; }; export type ToastProviderProps = { autoDismissTimeout?: number; autoDismiss?: boolean; components?: Components; newestOnTop?: boolean; placement: Placement; portalTargetSelector?: string; transitionDuration?: number; children: React.ReactNode; }; type State = { toasts: ToastsType; }; export declare class ToastProvider extends Component { toastNodeRefs: Map>; static defaultProps: { autoDismiss: boolean; autoDismissTimeout: number; components: { Toast: ({ appearance, autoDismiss, autoDismissTimeout, children, isRunning, onDismiss, placement, transitionDuration, transitionState, onMouseEnter, onMouseLeave, ...otherProps }: ToastProps) => React.JSX.Element; ToastContainer: ({ hasToasts, placement, ...props }: ToastContainerProps) => React.JSX.Element; }; newestOnTop: boolean; placement: string; transitionDuration: number; }; state: { toasts: State["toasts"]; }; render(): React.JSX.Element; getNodeRef: (id: Id) => React.RefObject; has: (id: string) => boolean; onDismiss: (id: Id, cb?: Callback) => () => void; add: (content: ReactNode, options?: Options, cb?: Callback) => string | undefined; remove: (id: Id, cb?: Callback) => void; removeAll: () => void; update: (id: Id, options?: Options, cb?: Callback) => void; } export declare const ToastConsumer: ({ children, }: { children: (Context: any) => ReactNode; }) => React.JSX.Element; export declare const withToastManager: (Comp: ComponentType) => React.ForwardRefExoticComponent & React.RefAttributes>; export declare const useToasts: () => { addToast: AddFn; removeToast: RemoveFn; removeAllToasts: () => void; updateToast: UpdateFn; toastStack: ToastType[]; }; export {};