import * as React from 'react'; import { TouchRippleActions } from '../ButtonBase/TouchRipple'; type ControlledPromise = Promise & { resolve: Function; reject: Function; }; /** * Lazy initialization container for the Ripple instance. This improves * performance by delaying mounting the ripple until it's needed. */ export declare class LazyRipple { /** React ref to the ripple instance */ ref: React.MutableRefObject; /** If the ripple component should be mounted */ shouldMount: boolean; /** Promise that resolves when the ripple component is mounted */ private mounted; /** If the ripple component has been mounted */ private didMount; /** React state hook setter */ private setShouldMount; static create(): LazyRipple; static use(): LazyRipple; constructor(); mount(): ControlledPromise; mountEffect: () => void; start(...args: Parameters): void; stop(...args: Parameters): void; pulsate(...args: Parameters): void; } export default function useLazyRipple(): LazyRipple; export {};