/// import * as React from 'react'; import { MouseEvent, ReactNode } from 'react'; import { Component as GenericComponent } from '../../types'; import { PassTroughFunction } from '../../utils/getPassThrough'; export declare type RippleOptions = { centered: boolean; className: string; enabled: boolean; multiple: boolean; passthrough: boolean; spread: number; }; export interface RippleWrapperProps { className: string; innerRef(instance: HTMLElement): void; } export interface RippleNodeProps { active: boolean; idx: string; innerRef(instance: HTMLElement): void; isTouch: boolean; onDeactivate(): void; onFinish(idx: string): void; spreadSize: number; startX: number; startY: number; } export interface WithRippleFactoryArgs { RippleNode: GenericComponent; RippleWrapper: GenericComponent; passthrough: PassTroughFunction; } export interface RippledProps { children: ReactNode; disabled: boolean; onMouseDown(event: MouseEvent): void; onMouseUp(event: MouseEvent): void; onTouchEnd(event: MouseEvent): void; onTouchStart(event: MouseEvent): void; ripple: boolean; rippleCentered: boolean; rippleClassName: string; rippleMultiple: boolean; rippleSpread: number; } export declare type RippleWrapperDescriptor = { width: number; x: number; y: number; }; export declare type RippleDescriptor = { active: boolean; isTouch: boolean; width: number; x: number; y: number; }; export interface RippledState { ripples: { [key: string]: RippleDescriptor; }; } export interface DecoratedProps { onMouseDown(event: MouseEvent): void; onMouseUp(event: MouseEvent): void; onTouchEnd(event: MouseEvent): void; onTouchStart(event: MouseEvent): void; } declare const withRippleFactory: ({RippleNode, RippleWrapper, passthrough}: WithRippleFactoryArgs) => (options?: Partial) =>

(ComposedComponent: React.ComponentClass

) => React.ComponentClass; export default withRippleFactory;