import { type VariantProps } from 'class-variance-authority';
import * as React from 'react';
import { type ButtonProps } from '@/components/atoms/buttons/Button';
declare const alertVariants: (props?: ({
    appearance?: "solid" | "soft" | "outline" | null | undefined;
    variant?: "info" | "success" | "warning" | "destructive" | "default" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type AlertVariant = NonNullable<VariantProps<typeof alertVariants>['variant']>;
type AlertAppearance = NonNullable<VariantProps<typeof alertVariants>['appearance']>;
export interface AlertProps extends Omit<React.ComponentProps<'div'>, 'title'>, VariantProps<typeof alertVariants> {
    /** Alert title - displayed prominently */
    title?: React.ReactNode;
    /** Alert description - secondary text */
    description?: React.ReactNode;
    /** Custom icon to display. Set to `false` to hide the icon entirely */
    icon?: React.ReactNode | false;
    /** Show close button */
    closable?: boolean;
    /** Callback when close button is clicked */
    onClose?: () => void;
    /** Action button configuration */
    action?: {
        label: string;
        onClick?: () => void;
        props?: Omit<ButtonProps, 'children' | 'onClick'>;
    };
    /** Duration of dismiss animation in ms (0 to disable) */
    dismissDuration?: number;
}
declare const Alert: React.ForwardRefExoticComponent<Omit<AlertProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
/** Alert title component */
declare const AlertTitle: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
/** Alert description component */
declare const AlertDescription: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
export type { AlertAppearance, AlertVariant };
export { Alert, AlertDescription, AlertTitle, alertVariants };
