export declare const MaAlertTypeList: string[];
export type MaAlertType = (typeof MaAlertTypeList)[number];
export declare const MaAlertVariantList: string[];
export type MaAlertVariant = (typeof MaAlertVariantList)[number];
export declare const MaAlertSizeList: string[];
export type MaAlertSize = (typeof MaAlertSizeList)[number];
export interface MaAlertActionButton {
    /**
     * The text label to display on the action button.
     */
    text: string;
    /**
     * Optional URL that the button should navigate to when clicked.
     */
    href?: string;
    /**
     * Optional event handler that is invoked when the button is clicked.
     */
    onClick?: (e: MouseEvent) => void;
}
export interface MaAlertProps {
    /**
     * Specifies the alert's type, determining its icon and color scheme.
     */
    type?: MaAlertType;
    /**
     * Determines the visual style of the alert.
     */
    variant?: MaAlertVariant;
    /**
     * Defines the size of the alert, affecting its padding.
     */
    size?: MaAlertSize;
    /**
     * The primary header text for the alert, typically a concise title.
     */
    title?: string;
    /**
     * Provides additional descriptive text or details about the alert.
     */
    message?: string;
    /**
     * Indicates whether an icon should be displayed alongside the alert content.
     * When true, an icon matching the alert type or custom icon will be shown.
     */
    showIcon?: boolean;
    /**
     * Specifies a custom icon name to use when `showIcon` is enabled.
     * This overrides the default icon associated with the alert type.
     */
    icon?: string;
    /**
     * Determines if the alert can be dismissed by the user.
     * When true, a close button will be visible.
     */
    closable?: boolean;
    /**
     * A callback function that is executed after the alert's close animation completes.
     * Useful for triggering cleanup actions or additional logic post-dismissal.
     */
    afterClose?: () => void;
    /**
     * An array of action button objects to render within the alert.
     * Each button can include text, an optional hyperlink, and an optional click handler.
     */
    buttons?: MaAlertActionButton[];
}
export interface MaAlertEvents {
    /**
     * Emitted when the user clicks the close button on the alert.
     */
    (e: 'close', event: MouseEvent): void;
}
export interface MaAlertSlots {
    /**
     * Slot for the main alert content.
     * Typically used to display the alert's detailed message.
     */
    default: () => void;
    /**
     * Slot for custom action content.
     * Use this slot to insert arbitrary elements if the provided action buttons do not suffice.
     */
    actions: () => void;
}
