import { type HTMLAttributes, type ReactNode } from 'react';
import { type VariantProps } from 'class-variance-authority';
declare const liveRegionVariants: (props?: ({
visuallyHidden?: boolean | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export type LiveRegionPoliteness = 'polite' | 'assertive' | 'off';
export type LiveRegionRelevant = 'additions' | 'removals' | 'text' | 'all';
export type LiveRegionElement = 'div' | 'span';
export interface LiveRegionProps extends Omit, 'role' | 'children'>, VariantProps {
/**
* `aria-live` politeness. `off` removes the live region announcement
* but keeps the DOM container.
* @default 'polite'
*/
politeness?: LiveRegionPoliteness;
/**
* Whether AT should announce the entire region on update.
* @default true
*/
atomic?: boolean;
/**
* Which mutation kinds AT should announce.
*/
relevant?: LiveRegionRelevant;
/**
* Defer rendering of `children` by this many milliseconds. Useful when a
* message updates within the same React commit as the region mounts —
* many screen readers miss messages that appear synchronously with the
* region itself. A small delay (50–150ms) makes the change observable.
* @default 0
*/
delay?: number;
/**
* Element to render. `div` is block-level (default), `span` for inline.
* @default 'div'
*/
as?: LiveRegionElement;
/**
* When true (the default), the region is rendered with `sr-only` so it
* is announced but not visually shown. Set to `false` to render
* visibly — useful for status messages that should appear on screen.
* @default true
*/
visuallyHidden?: boolean;
children?: ReactNode;
}
export declare const LiveRegion: import("react").ForwardRefExoticComponent>;
export {};
//# sourceMappingURL=live-region.d.ts.map