import { ComponentSize } from '../../../xiaoye-primitives/index.js';
export declare const alertTypes: readonly ["primary", "success", "info", "warning", "error"];
export declare const alertEffects: readonly ["light", "dark"];
export declare const alertVariants: readonly ["default", "banner", "card"];
export declare const alertOverflowStrategies: readonly ["drop-oldest", "drop-newest"];
export declare const alertCloseReasons: readonly ["manual", "auto", "close-all", "overflow"];
export type AlertType = (typeof alertTypes)[number];
export type AlertEffect = (typeof alertEffects)[number];
export type AlertVariant = (typeof alertVariants)[number];
export type AlertOverflowStrategy = (typeof alertOverflowStrategies)[number];
export type AlertCloseReason = (typeof alertCloseReasons)[number];
export type AlertDoneFn = (cancel?: boolean) => void;
export type AlertBeforeCloseFn = (done: AlertDoneFn) => void | Promise<void>;
export type AlertServiceClosedFn = (reason: AlertCloseReason) => void;
export type AlertCloseHandler = (event: MouseEvent) => void;
export type AlertModelValueChangeHandler = (value: boolean) => void;
export type AlertAutoCloseHandler = () => void;
export interface AlertProps {
    modelValue?: boolean;
    title?: string;
    description?: string;
    type?: AlertType;
    closable?: boolean;
    closeText?: string;
    showIcon?: boolean;
    center?: boolean;
    effect?: AlertEffect;
    duration?: number;
    size?: ComponentSize;
    variant?: AlertVariant;
    beforeClose?: AlertBeforeCloseFn;
    pauseOnHover?: boolean;
    pauseOnFocus?: boolean;
    pauseOnPageHidden?: boolean;
    collapsible?: boolean;
    defaultExpanded?: boolean;
    lineClamp?: number;
    expandText?: string;
    collapseText?: string;
}
export interface AlertServiceOptions extends Omit<AlertProps, "modelValue" | "variant"> {
    groupKey?: string;
    appendTo?: string | HTMLElement;
    maxQueue?: number;
    overflowStrategy?: AlertOverflowStrategy;
    onClosed?: AlertServiceClosedFn;
}
export type AlertServiceUpdateOptions = Partial<AlertServiceOptions>;
export interface AlertServiceSnapshotEntry extends Omit<AlertServiceOptions, "beforeClose" | "onClosed"> {
    id: string;
}
export interface AlertServiceSnapshot {
    current: AlertServiceSnapshotEntry | null;
    queue: AlertServiceSnapshotEntry[];
    queueLength: number;
    total: number;
}
export interface AlertServiceHandle {
    id: string;
    close(): void;
    update(patch: AlertServiceUpdateOptions): void;
}
export declare const ALERT_TYPE_ICON_MAP: Record<AlertType, string>;
export declare const ALERT_CLOSE_ICON = "mdi:close";
export declare function invokeAlertBeforeClose(beforeClose: AlertBeforeCloseFn | undefined, onProceed: () => void): void;
