import React from 'react';
import { Theme } from '../cn';
export declare type NotificationProps = {
    /**
     * Тип компонента
     */
    status?: 'error' | 'fail' | 'ok';
    /**
     * Управление видимостью компонента
     */
    visible?: boolean;
    /**
     * Отступ от верхнего края
     */
    offset?: number;
    /**
     * К какому краю прижат попап
     */
    stickTo?: 'left' | 'right';
    /**
     * Управляет отображением кнопки закрытия уведомления
     */
    hasCloser?: boolean;
    /**
     * Дочерние элементы `Notification`
     */
    children?: React.ReactNode;
    /**
     * Тема компонента
     */
    theme?: Theme;
    /**
     * Дополнительный класс
     */
    className?: string;
    /**
     * Идентификатор компонента в DOM
     */
    id?: string;
    /**
     * Заголовок сообщения
     */
    title?: React.ReactNode;
    /**
     * Замена стандартной иконки
     */
    icon?: React.ReactNode;
    /**
     * Время до закрытия компонента
     */
    autoCloseDelay?: number;
    /**
     * Обработчик события истечения времени до закрытия компонента
     */
    onCloseTimeout?: () => void;
    /**
     * Обработчик клика по крестику компонента
     */
    onCloserClick?: (event?: React.MouseEvent<any>) => void;
    /**
     * Обработчик события нажатия на клавишу клавиатуры в момент, когда фокус находится на компоненте
     */
    onKeyDown?: (event?: React.KeyboardEvent<any>) => void;
    /**
     * Обработчик события наведения курсора на попап
     */
    onMouseEnter?: (event?: React.MouseEvent<any>) => void;
    /**
     * Обработчик события снятия курсора с попапа
     */
    onMouseLeave?: (event?: React.MouseEvent<any>) => void;
    /**
     * Обработчик клика вне компонента
     */
    onClickOutside?: (event?: React.MouseEvent<any>) => void;
    /**
     * Обработчик клика по компоненту
     */
    onClick?: (event?: React.MouseEvent<any>) => void;
    /**
     * Идентификатор для систем автоматизированного тестирования
     */
    'data-test-id'?: string;
};
/**
 * Компонент всплывающего окна.
 */
export declare class Notification extends React.PureComponent<NotificationProps> {
    protected cn: (this: void | {
        props?: Record<string, unknown>;
    }, elementNameOrMods?: string | {
        [key: string]: string | number | boolean;
    }, mods?: {
        [key: string]: string | number | boolean;
    }) => string;
    static defaultProps: Partial<NotificationProps>;
    state: {
        hovered: boolean;
    };
    private root;
    private closeTimeout;
    private clickEventBindTimeout;
    private isWindowClickBinded;
    componentDidMount(): void;
    componentDidUpdate(prevProps: any): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
    private handleSwipe;
    private handleCloserClick;
    private handleKeyDown;
    private handleMouseEnter;
    private handleMouseLeave;
    private handleClick;
    private handleWindowClick;
    private getPosition;
    private startCloseTimer;
    private stopCloseTimer;
    private ensureClickEvent;
}
declare const _default: React.ForwardRefExoticComponent<NotificationProps & React.RefAttributes<Notification>> & Notification;
export default _default;
