import type { ComponentProps } from '@fluentui/react-utilities';
import type { ComponentState } from '@fluentui/react-utilities';
import type { ForwardRefComponent } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';
import * as React_2 from 'react';
import { renderToastFooter_unstable as renderToastFooter } from '@fluentui/react-toast';
import type { Slot } from '@fluentui/react-utilities';
import type { ToastAnnounce } from '@fluentui/react-toast';
import type { ToastBaseState } from '@fluentui/react-toast';
import { ToastBodyBaseProps as ToastBodyProps } from '@fluentui/react-toast';
import { ToastBodySlots } from '@fluentui/react-toast';
import { ToastBodyBaseState as ToastBodyState } from '@fluentui/react-toast';
import { ToastChangeData } from '@fluentui/react-toast';
import { ToastChangeHandler } from '@fluentui/react-toast';
import type { ToastContainerContextValue } from '@fluentui/react-toast';
import type { ToastData } from '@fluentui/react-toast';
import { ToasterId } from '@fluentui/react-toast';
import type { ToasterProps as ToasterProps_2 } from '@fluentui/react-toast';
import type { ToasterState as ToasterState_2 } from '@fluentui/react-toast';
import { ToastFooterProps } from '@fluentui/react-toast';
import { ToastFooterSlots } from '@fluentui/react-toast';
import { ToastFooterState } from '@fluentui/react-toast';
import { ToastId } from '@fluentui/react-toast';
import { ToastImperativeRef } from '@fluentui/react-toast';
import { ToastIntent } from '@fluentui/react-toast';
import { ToastPoliteness } from '@fluentui/react-toast';
import { ToastPosition } from '@fluentui/react-toast';
import { ToastBaseProps as ToastProps } from '@fluentui/react-toast';
import { ToastSlots } from '@fluentui/react-toast';
import { ToastStatus } from '@fluentui/react-toast';
import { ToastTitleBaseProps as ToastTitleProps } from '@fluentui/react-toast';
import { ToastTitleSlots } from '@fluentui/react-toast';
import { ToastTitleBaseState as ToastTitleState } from '@fluentui/react-toast';
import { useToastBodyBase_unstable as useToastBody } from '@fluentui/react-toast';
import { useToastContainerContext } from '@fluentui/react-toast';
import { useToastController } from '@fluentui/react-toast';
import { useToastFooter_unstable as useToastFooter } from '@fluentui/react-toast';
import { useToastTitleBase_unstable as useToastTitle } from '@fluentui/react-toast';
/**
* Render the final JSX of Toast
*/
export declare const renderToast: (state: ToastState) => JSXElement;
/**
* Renders the final JSX of the ToastBody component.
*/
export declare const renderToastBody: (state: ToastBodyState) => JSXElement;
/**
* Renders the final JSX of the ToastContainer component.
*/
export declare const renderToastContainer: (state: ToastContainerState, contextValues: ToastContainerContextValues) => JSXElement;
/**
* Render the position-based containers for the headless Toaster.
*
* Each container is a `
` that
* consumers can target with CSS to apply positioning/styling. Containers use
* the native Popover API to render in the browser top layer.
*/
export declare const renderToaster: (state: ToasterState) => JSXElement;
export { renderToastFooter }
export declare const renderToastTitle: (state: ToastTitleState) => JSXElement;
/**
* A Toast component displays temporary, non-intrusive notifications to users.
* It's ideal for displaying brief messages, alerts, or feedback that auto-dismiss after a set duration.
*/
export declare const Toast: ForwardRefComponent;
/**
* Represents the body of a toast, which typically contains the main content of the toast message.
*/
export declare const ToastBody: ForwardRefComponent;
export { ToastBodyProps }
export { ToastBodySlots }
export { ToastBodyState }
export { ToastChangeData }
export { ToastChangeHandler }
/**
* Wraps a Toast and provides context for its content and behavior.
*
* The ToastContainer should be rendered inside a Toaster, which manages the stacking and positioning of multiple ToastContainers.
*/
export declare const ToastContainer: ForwardRefComponent;
export { ToastContainerContextValue }
declare type ToastContainerContextValues = {
toast: ToastContainerContextValue;
};
export declare type ToastContainerProps = Omit>, 'content'> & ToastData & {
visible: boolean;
tryRestoreFocus: () => void;
/**
* Announcer used to narrate this toast's text content to screen readers.
* Supplied by the parent `Toaster`; consumers do not need to pass this directly.
*/
announce?: ToastAnnounce;
};
export declare type ToastContainerSlots = {
root: NonNullable>;
};
export declare type ToastContainerState = ComponentState & Pick & Pick & {
running: boolean;
nodeRef: React_2.Ref;
};
/**
* Toaster — subscribes to the event-driven toast state machine and renders
* position-based slot containers. Each container is promoted to the browser
* top layer via the native Popover API.
*
* Pair with useToastController from @fluentui/react-toast to dispatch and dismiss toasts imperatively.
*/
export declare const Toaster: {
(props: ToasterProps): JSXElement;
displayName: string;
};
export { ToasterId }
/**
* Toaster Props
*
* Headless Toaster always uses the native Popover API to render in the browser
* top layer — there is no `mountNode` prop and no `inline` opt-out.
*/
export declare type ToasterProps = Omit;
/**
* State used in rendering Toaster
*/
export declare type ToasterState = Omit;
/**
* ToastFooter contains action buttons related to the toast message.
*/
export declare const ToastFooter: ForwardRefComponent;
export { ToastFooterProps }
export { ToastFooterSlots }
export { ToastFooterState }
export { ToastId }
export { ToastImperativeRef }
export { ToastIntent }
export { ToastPoliteness }
export { ToastPosition }
export { ToastProps }
export { ToastSlots }
export declare type ToastState = ToastBaseState & {
root: {
/**
* Indicates the semantic intent or status of the toast notification, determining visual styling and messaging context.
* Common values include: 'success', 'error', 'warning', 'info'.
*/
'data-intent'?: string;
};
};
export { ToastStatus }
/**
* Represents the title of a toast, which is a brief summary or headline for the toast message.
*/
export declare const ToastTitle: ForwardRefComponent;
export { ToastTitleProps }
export { ToastTitleSlots }
export { ToastTitleState }
/**
* The `useToast` hook processes the props sent to `Toast` and returns state and slot props.
*/
export declare const useToast: (props: ToastProps, ref: React_2.Ref) => ToastState;
export { useToastBody }
/**
* The `useToastContainer` hook processes the props sent to `ToastContainer` and returns state and slot props.
*/
export declare const useToastContainer: (props: ToastContainerProps, ref: React_2.Ref) => ToastContainerState;
export { useToastContainerContext }
export declare const useToastContainerContextValues: (state: ToastContainerState) => ToastContainerContextValues;
export { useToastController }
/**
* Create the state required to render the Toaster.
*/
export declare const useToaster: (props: ToasterProps) => ToasterState;
export { useToastFooter }
export { useToastTitle }
export { }