import { default as React } from 'react';
import { BaseProps } from '../../../libraries/common-types/src/common-types';
import { HeadingTagType } from '../../heading/src/heading';
export declare const NOTIFICATION_STATUS: {
    readonly SUCCESS: "success";
    readonly WARNING: "warning";
    readonly ERROR: "error";
    readonly INFO: "info";
};
export declare const notificationStatuses: ("error" | "success" | "warning" | "info")[];
export type NotificationStatus = (typeof NOTIFICATION_STATUS)[keyof typeof NOTIFICATION_STATUS];
export declare const NOTIFICATION_ARIA_LIVE: {
    readonly POLITE: "polite";
    readonly ASSERTIVE: "assertive";
};
export declare const notificationAriaLiveValues: ("assertive" | "polite")[];
export type NotificationAriaLive = (typeof NOTIFICATION_ARIA_LIVE)[keyof typeof NOTIFICATION_ARIA_LIVE];
export declare const NOTIFICATION_ROLE: {
    readonly ALERT: "alert";
    readonly DIALOG: "dialog";
    readonly ALERTDIALOG: "alertdialog";
};
export declare const notificationRoles: ("dialog" | "alert" | "alertdialog")[];
export type NotificationRole = (typeof NOTIFICATION_ROLE)[keyof typeof NOTIFICATION_ROLE];
type DefaultProps = BaseProps & {
    ["aria-live"]?: NotificationAriaLive;
    headingTag?: HeadingTagType;
    status?: NotificationStatus;
    heading?: string;
    role?: NotificationRole;
    hidden?: boolean;
    /**
     * Use to explicitly not open the notification initially and open it programatically to trigger
     * that the aria-live message is read by the screen reader correctly.
     */
    open?: boolean;
    hideIcon?: boolean;
};
type CloseButtonProps = {
    onClose: () => void;
    closeButtonAriaLabel: string;
};
type NoCloseButtonProps = {
    onClose?: never;
    closeButtonAriaLabel?: never;
};
export type NotificationProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);
export declare const Notification: React.ForwardRefExoticComponent<(Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    [key: `data-${string}`]: string | undefined;
} & {
    "aria-live"?: NotificationAriaLive;
    headingTag?: HeadingTagType;
    status?: NotificationStatus;
    heading?: string;
    role?: NotificationRole;
    hidden?: boolean;
    /**
     * Use to explicitly not open the notification initially and open it programatically to trigger
     * that the aria-live message is read by the screen reader correctly.
     */
    open?: boolean;
    hideIcon?: boolean;
} & CloseButtonProps, "ref"> | Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    [key: `data-${string}`]: string | undefined;
} & {
    "aria-live"?: NotificationAriaLive;
    headingTag?: HeadingTagType;
    status?: NotificationStatus;
    heading?: string;
    role?: NotificationRole;
    hidden?: boolean;
    /**
     * Use to explicitly not open the notification initially and open it programatically to trigger
     * that the aria-live message is read by the screen reader correctly.
     */
    open?: boolean;
    hideIcon?: boolean;
} & NoCloseButtonProps, "ref">) & React.RefAttributes<HTMLDivElement>>;
export {};
//# sourceMappingURL=notification.d.ts.map