/// <reference types="react" />
export type NotificationPlacement = 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight';
export type IconType = 'success' | 'info' | 'error' | 'warning';
export type BaseClosableType = {
    closeIcon?: React.ReactNode;
} & React.AriaAttributes;
export type ClosableType = boolean | BaseClosableType;
export interface NotificationArgsProps {
    message: React.ReactNode;
    description?: React.ReactNode;
    btn?: React.ReactNode;
    key?: React.Key;
    onClose?: () => void;
    duration?: number | null;
    showProgress?: boolean;
    pauseOnHover?: boolean;
    icon?: React.ReactNode;
    placement?: NotificationPlacement;
    style?: React.CSSProperties;
    className?: string;
    readonly type?: IconType;
    onClick?: () => void;
    closeIcon?: React.ReactNode;
    closable?: ClosableType;
    props?: React.HTMLProps<HTMLDivElement>;
    role?: 'alert' | 'status';
}
type StaticFn = (args: NotificationArgsProps) => void;
export interface NotificationInstance {
    success: StaticFn;
    error: StaticFn;
    info: StaticFn;
    warning: StaticFn;
    open: StaticFn;
    destroy(key?: React.Key): void;
}
export interface GlobalConfigProps {
    top?: number;
    bottom?: number;
    duration?: number;
    showProgress?: boolean;
    pauseOnHover?: boolean;
    prefixCls?: string;
    getContainer?: () => HTMLElement | ShadowRoot;
    placement?: NotificationPlacement;
    closeIcon?: React.ReactNode;
    closable?: ClosableType;
    rtl?: boolean;
    maxCount?: number;
    props?: React.HTMLProps<HTMLDivElement>;
}
export interface NotificationConfig {
    top?: number;
    bottom?: number;
    prefixCls?: string;
    getContainer?: () => HTMLElement | ShadowRoot;
    placement?: NotificationPlacement;
    maxCount?: number;
    rtl?: boolean;
    stack?: boolean | {
        threshold?: number;
    };
    duration?: number;
    showProgress?: boolean;
    pauseOnHover?: boolean;
}
export declare const DEFAULT_TOP = 24;
export declare const DEFAULT_BOTTOM = 24;
export declare const DEFAULT_OFFSET = 24;
export declare const DEFAULT_DURATION = 4.5;
export declare const DEFAULT_PLACEMENT: NotificationPlacement;
export declare const NOTIFICATION_PREFIX_CLS: string;
export declare function getPlacementStyle(placement: NotificationPlacement, top?: number, bottom?: number): {
    left: string;
    transform: string;
    right: string;
    top: number;
    bottom: string;
} | {
    left: number;
    top: number;
    bottom: string;
    transform?: undefined;
    right?: undefined;
} | {
    right: number;
    top: number;
    bottom: string;
    left?: undefined;
    transform?: undefined;
} | {
    left: string;
    transform: string;
    right: string;
    top: string;
    bottom: number;
} | {
    left: number;
    top: string;
    bottom: number;
    transform?: undefined;
    right?: undefined;
} | {
    right: number;
    top: string;
    bottom: number;
    left?: undefined;
    transform?: undefined;
};
export {};
//# sourceMappingURL=protocol.d.ts.map