/**
 * Utility method to apply ripple effect for the given event by:
 * 1. create a mask element,
 * 2. add it to the target element,
 * 3. and add a ripple element to the mask
 *
 * @param {MouseEvent} e - The event object that was triggered.
 */
export declare const triggerRipple: (e: MouseEvent) => void;
/**
 * Takes an element and returns its offsetHeight to trigger reflow,
 * which can be used to reset the animation.
 * For more details, {@see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation}
 *
 * Note: we cannot simply invoke `element.offsetHeight` to trigger reflow
 *       as the statement will get erased during VM optimization phase
 *
 * @param {HTMLElement} element - HTMLElement - The element to be measured.
 * return the offsetHeight of the given element
 */
export declare const reflow: (element: HTMLElement) => void;
/**
 * Executes a callback after a transition has ended on a given element
 *
 * @param {() => void} callback - The function to execute after the transition ends
 * @param {HTMLElement} element - The element to listen for transitionend event on
 * @param {number} [timeout] - The timeout in milliseconds after which the callback will be executed even if the
 * transitionend event hasn't been fired.
 */
export declare function executeAfterTransition(callback: () => void, element: HTMLElement, timeout?: number): void;
