import { AlertOptions, AlertVariant } from './alert.types';
/**
* Headless alert/callout controller. Sets the appropriate ARIA live semantics
* for the variant, reflects `data-variant` / `data-state`, and (when a
* `[data-c42-alert-dismiss]` element is present) wires dismissal. It never
* applies visual styles — variant colors live in CSS keyed off `data-variant`.
*
* Markup:
* ```html
*
* ⚠
*
* Heads up
*
Your trial ends soon.
*
*
*
* ```
*/
export declare class Alert {
private readonly root;
private readonly dismissBtn;
private variant;
private readonly roleOverride;
private dismissed;
private cleanups;
constructor(root: HTMLElement, options?: AlertOptions);
private normalizeVariant;
private applyVariant;
/** Change the variant; updates `data-variant` and ARIA live semantics. */
setVariant(variant: AlertVariant): void;
get currentVariant(): AlertVariant;
/** Hide the alert and emit `alert:dismiss`. No-op if already dismissed. */
dismiss(): void;
/** Re-show a dismissed alert. */
show(): void;
/** Subscribe to a DOM event on the root element. Returns an unsubscribe fn. */
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}