import { type EventEmitter } from "../../stencil-public-runtime"; export type ToastStatus = "loading" | "success" | "warning" | "danger"; export type ToastCloseReason = "timeout" | "action" | "programmatic"; /** Base payload shared by all toast lifecycle events — the toast's stable id. */ export interface ToastEventDetail { /** Stable id of the toast (the `toastId` prop, or an auto-generated fallback). */ id: string; } /** Payload of `ifxToastClose` — the toast id plus why it closed. */ export interface ToastCloseEventDetail extends ToastEventDetail { reason: ToastCloseReason; } export declare class Toast { el: HTMLIfxToastElement; /** Stable id emitted with every toast event. Auto-generated when not set. */ readonly toastId: string; /** Status variant controlling the status icon and accent color. */ readonly status: ToastStatus; /** Message text. Falls back to the default slot when empty. */ readonly message: string; /** Text for the trailing action button that dismisses the toast. Hidden when empty. */ readonly actionText: string; /** Auto-dismiss delay in ms. `0` disables auto-dismiss. The `loading` status never auto-dismisses. */ readonly duration: number; /** Emitted once the toast has been shown (mounted and rendered). */ ifxToastOpen: EventEmitter; /** Emitted after the toast finished dismissing (animation complete). */ ifxToastClose: EventEmitter; /** Emitted when the action is activated (before the toast dismisses). */ ifxToastAction: EventEmitter; private toastEl; private dismissTimer; private dismissing; private internalId; componentWillLoad(): void; /** The id surfaced in events: the `toastId` prop, or the generated fallback. */ private get resolvedId(); componentDidLoad(): Promise; disconnectedCallback(): void; /** * Restart the auto-dismiss timer when the status changes (e.g. `loading` → `success`): * leaving `loading` (re)starts the timer, entering `loading` clears it. */ statusChanged(newStatus: ToastStatus, oldStatus: ToastStatus): void; /** * Programmatically dismisses the toast. Runs the exit animation and then emits `ifxToastClose`. */ dismiss(reason?: ToastCloseReason): Promise; private startTimer; private clearTimer; private skipAnimation; private prefersReducedMotion; private runEnterAnimation; private emitCloseAfterExit; private handleAction; private renderIcon; render(): any; }