import { PropsWithChildren, ReactNode } from "react";
export interface INotificationsContainerProps {
    hiddenBackground: boolean;
}
export interface INotificationItem {
    id: string;
    duration?: number | null;
    title: string;
    description?: ReactNode;
    warning?: boolean;
    error?: boolean;
    success?: boolean;
    button?: string;
    progress?: boolean | number;
    onButtonClick?: VoidFunction;
    onCloseRequest?: VoidFunction;
    circular?: boolean;
    buttonColor?: "primary" | "secondary" | "error" | "default";
}
export interface INotificationsProps {
    duration?: number;
    items?: INotificationItem[];
    container: HTMLElement | null;
    onCloseRequest: (id: string) => void;
    closeExtraItems?: boolean;
    className?: string;
}
export interface INotificationsGroupProps {
    items: INotificationItem[];
    firstItemRef: (ref: HTMLDivElement | null, id: string) => void;
}
export interface INotificationProps {
    warning?: boolean;
    error?: boolean;
    success?: boolean;
    progress?: boolean | number;
    button?: string;
    onButtonClick?: VoidFunction;
    title: string;
    description?: ReactNode;
    onCloseRequest?: VoidFunction;
    circular?: boolean;
    duration?: number | null;
    buttonColor?: "primary" | "secondary" | "error" | "default";
    innerRef: RefType<HTMLDivElement>;
}
export interface IButtonContainerProps extends PropsWithChildren {
    onClick?: VoidFunction;
    buttonColor?: "primary" | "secondary" | "error" | "default";
}
export interface ICloseButtonContainerProps {
    onCloseRequest?: VoidFunction;
}
export interface IMessageIcon {
    warning?: boolean;
    error?: boolean;
}
export interface IIconContainerProps extends IMessageIcon {
    success?: boolean;
    circular?: boolean;
}
export interface IAreaProps {
    button?: boolean;
}
export interface IMessageAreaProps extends IAreaProps, IMessageIcon {
    title: string;
    description?: ReactNode;
}
