import React from 'react'; import { Subtract } from 'utility-types'; import { MDCRippleFoundation } from '@material/ripple/foundation'; import { MDCRippleAdapter } from '@material/ripple/adapter'; export interface RippledComponentProps { unbounded?: boolean; disabled?: boolean; style?: React.CSSProperties; className?: string; onMouseDown?: React.MouseEventHandler; onMouseUp?: React.MouseEventHandler; onTouchStart?: React.TouchEventHandler; onTouchEnd?: React.TouchEventHandler; onKeyDown?: React.KeyboardEventHandler; onKeyUp?: React.KeyboardEventHandler; onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; computeBoundingRect?: (surface: T) => ClientRect; } export interface RippledComponentState { classList: Set; style: React.CSSProperties; } export interface InjectedProps extends RippledComponentProps { initRipple?: React.Ref | ((surface: S | null, activator?: A | null) => void); } declare type ActivateEventTypes = React.MouseEvent | React.TouchEvent | React.KeyboardEvent | React.FocusEvent; export interface RippledComponentInterface { foundation?: MDCRippleFoundation; isComponentMounted: boolean; isTouched: boolean; initializeFoundation: (surface: Surface, activator?: Activator) => void; handleFocus: React.FocusEventHandler; handleBlur: React.FocusEventHandler; handleMouseDown: React.MouseEventHandler; handleMouseUp: React.MouseEventHandler; handleTouchStart: React.TouchEventHandler; handleTouchEnd: React.TouchEventHandler; handleKeyDown: React.KeyboardEventHandler; handleKeyUp: React.KeyboardEventHandler; activateRipple: (e: ActivateEventTypes) => void; deactivateRipple: () => void; classes: string; style: React.CSSProperties; displayName: string; createAdapter: (surface: Surface, activator?: Activator) => MDCRippleAdapter; updateCssVariable: (varName: string, value: string | null) => void; componentDidMount: () => void; componentWillUnmount: () => void; render: () => JSX.Element; } export declare function withRipple

, Surface extends Element = Element, Activator extends Element = Element>(WrappedComponent: React.ComponentType

): React.ComponentType> & RippledComponentProps>; export {};