import type { ReactNode, Ref } from "react"; export type ToastPlacement = "top-start" | "top-end" | "bottom-start" | "bottom-end"; export interface ToastRegionProps { /** Corner the stack occupies. @default "bottom-end" */ placement?: ToastPlacement; /** Accessible name for the region. @default "Notifications" */ "aria-label"?: string; /** The toast stack — `Toast` elements, routed to a live wrapper by variant. */ children: ReactNode; className?: string; /** Forwarded ref to the region element. */ ref?: Ref; } /** The positioned live region that holds the toast stack (D64). * * Two things here are load-bearing and both look like details: * * 1. **The two live wrappers are always rendered**, empty queue included. A * live region announces mutations to a subtree that already existed; a * wrapper that mounts together with its first toast reads as a new subtree, * and that first toast is never announced. * * 2. **`popover="manual"`, not `"auto"`.** Manual puts the region in the * native top layer without light dismiss. The top layer is required because * Dialog uses showModal() — also top layer — so a fixed region at * --psi-z-overlay would paint *under* the modal backdrop, hiding the * confirmation for the action a user just took inside a dialog. And `auto` * would be dismissed by the very click that raised the toast. * * Routing reads `variant` off each child, the same Children.map technique * Table uses for select-all injection. * * Consequence of the split, visible in the `InRegion` VR baseline: the stack is * grouped by politeness, not strictly chronological — every assertive toast * sorts below every polite one regardless of arrival order. Chronological order * is preserved *within* each group. Keeping it exact across both would mean one * live region with a politeness that changes per message, which is the thing * the two wrappers exist to avoid. Accepted: at `limit` 3 the grouping reads as * severity ordering, and the newest toast still lands nearest the screen edge * within its group. */ export declare function ToastRegion({ placement, "aria-label": ariaLabel, children, className, ref, }: ToastRegionProps): import("react").JSX.Element; //# sourceMappingURL=ToastRegion.d.ts.map