import React, { HTMLAttributes, PureComponent } from 'react';
import { TouchEvent } from '../Touch/Touch';
import { HasPlatform } from '../../types';
import { AdaptivityProps } from '../../hoc/withAdaptivity';
export interface SnackbarProps extends HTMLAttributes, HasPlatform, AdaptivityProps {
/**
* Название кнопки действия в уведомлении
*/
action?: string | React.ComponentType;
/**
* Будет вызвано при клике на кнопку действия
*/
onActionClick?: (e: React.MouseEvent) => void;
/**
* Цветная иконка 24x24 пикселя
*/
before?: React.ReactNode;
/**
* Контент в правой части, может быть ``
*/
after?: React.ReactNode;
/**
* Варианты расположения кнопки
*/
layout?: 'vertical' | 'horizontal';
/**
* Время в миллисекундах, через которое плашка скроется
*/
duration?: number;
/**
* Обработчик закрытия уведомления
*/
onClose: () => void;
}
export interface SnackbarState {
closing: boolean;
touched: boolean;
}
declare class Snackbar extends PureComponent {
constructor(props: SnackbarProps);
static defaultProps: Partial;
private innerEl;
private readonly bodyElRef;
private shiftXPercent;
private shiftXCurrent;
private touchStartTime;
private animationFrame;
private closeTimeout;
private transitionFinishTimeout;
componentDidMount(): void;
componentWillUnmount(): void;
setCloseTimeout: () => void;
clearCloseTimeout: () => void;
private readonly onActionClick;
close(): void;
waitTransitionFinish(element: HTMLElement, eventHandler: VoidFunction): void;
getInnerRef: (el: HTMLDivElement) => HTMLDivElement;
onTouchStart: () => void;
onTouchMoveX: (event: TouchEvent) => void;
onTouchEnd: () => void;
setBodyTransform(percent: number): void;
get isDesktop(): boolean;
render(): JSX.Element;
}
declare const _default: typeof Snackbar;
export default _default;