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;