/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { ReactiveControllerHost } from 'lit'; import { RippleController } from '../interfaces/ripple-controller.interface.js'; /** * Controller that manages ripple effects for radio interactions * Implements performance optimizations with debouncing and throttling * * @example * ```typescript * const controller = new RadioRippleController(hostElement); * controller.addRippleEffect(clickEvent); // Throttled for performance * ``` */ export declare class RadioRippleController implements RippleController { readonly host: ReactiveControllerHost; private _rippleEnabled; private boundClickHandler; private activeRipples; private ripplePool; constructor(host: ReactiveControllerHost); hostConnected(): void; hostDisconnected(): void; get rippleEnabled(): boolean; set rippleEnabled(value: boolean); private handleClick; addRippleEffect(event: Event): void; addRippleToElement(target: HTMLElement): void; private addButtonRippleEffect; private createRippleElement; private parseDuration; triggerRipple(optionValue?: string): void; disableRipple(): void; enableRipple(): void; /** * Clear all active ripple effects for performance * Implements object pooling for memory efficiency */ clearRipples(): void; /** * Get a ripple element from pool or create new one * Improves performance by reusing DOM elements */ private getRippleElement; /** * Add ripple effect to a specific element (interface method) * @param element - The element to add ripple effect to */ addRippleEffectToElement(element: HTMLElement): void; /** * Set whether ripple effects are enabled (interface method) * @param enabled - True to enable ripple effects */ setRippleEnabled(enabled: boolean): void; } //# sourceMappingURL=ripple.controller.d.ts.map