import { CSSProperties } from 'react'; type ToastType = 'success' | 'error' | 'loading' | 'blank' | 'custom'; type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'; type Renderable = React.ReactElement | string | null; interface IconTheme { primary: string; secondary: string; } type ValueFunction = (arg: TArg) => TValue; type ValueOrFunction = TValue | ValueFunction; declare const resolveValue: (valOrFunction: ValueOrFunction, arg: TArg) => TValue; interface Toast { type: ToastType; id: string; message: ValueOrFunction; icon?: Renderable; duration?: number; pauseDuration: number; position?: ToastPosition; removeDelay?: number; ariaProps: { role: 'status' | 'alert'; 'aria-live': 'assertive' | 'off' | 'polite'; }; style?: CSSProperties; className?: string; iconTheme?: IconTheme; createdAt: number; visible: boolean; dismissed: boolean; height?: number; } type ToastOptions = Partial>; type DefaultToastOptions = ToastOptions & { [key in ToastType]?: ToastOptions; }; interface ToasterProps { position?: ToastPosition; toastOptions?: DefaultToastOptions; reverseOrder?: boolean; gutter?: number; containerStyle?: React.CSSProperties; containerClassName?: string; children?: (toast: Toast) => React.ReactElement; } type Message = ValueOrFunction; type ToastHandler = (message: Message, options?: ToastOptions) => string; declare const toast: { (message: Message, opts?: ToastOptions): string; error: ToastHandler; success: ToastHandler; loading: ToastHandler; custom: ToastHandler; dismiss(toastId?: string): void; remove(toastId?: string): void; promise(promise: Promise | (() => Promise), msgs: { loading: Renderable; success?: ValueOrFunction; error?: ValueOrFunction; }, opts?: DefaultToastOptions): Promise; }; declare const useToaster: (toastOptions?: DefaultToastOptions) => { toasts: Toast[]; handlers: { updateHeight: (toastId: string, height: number) => void; startPause: () => void; endPause: () => void; calculateOffset: (toast: Toast, opts?: { reverseOrder?: boolean; gutter?: number; defaultPosition?: ToastPosition; }) => number; }; }; interface State { toasts: Toast[]; pausedAt: number | undefined; } declare const useStore: (toastOptions?: DefaultToastOptions) => State; export { DefaultToastOptions, IconTheme, Renderable, Toast, ToastOptions, ToastPosition, ToastType, ToasterProps, ValueFunction, ValueOrFunction, toast as default, resolveValue, toast, useToaster, useStore as useToasterStore };