import { type IAttachable } from '../../../Behaviors/Attachable';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { IConnectedCallback } from '../../Abstracts/Interfaces/IConnectedCallback';
import type { IDisconnectedCallback } from '../../Abstracts/Interfaces/IDisconnectedCallback';
import type { IRippleElementProps } from './IRippleElementProps';
import { CssTime } from '@breadstone/mosaik-themes';
declare const RippleElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => IAttachable) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Ripple - A component that provides a ripple effect animation.
 *
 * @description
 * The Ripple component adds a ripple effect animation to UI elements when they are interacted with.
 * This is commonly used to give visual feedback for button clicks or other interactive elements.
 * The ripple effect enhances user experience by providing immediate visual feedback.
 *
 * @name Ripple
 * @element mosaik-ripple
 * @category Effects
 *
 * @example
 * ```html
 * <mosaik-ripple>Click Me</mosaik-ripple>
 * ```
 *
 * @cssprop {color} --ripple-background-color - Defines the background color of the ripple effect.
 *
 * @public
 */
export declare class RippleElement extends RippleElement_base implements IConnectedCallback, IDisconnectedCallback, IAttachable, IRippleElementProps {
    private _mouseDownSubscription;
    private _centered;
    private _duration;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `centered` property.
     *
     * @public
     * @attr
     */
    get centered(): boolean;
    set centered(value: boolean);
    /**
     * Gets or sets the `duration` property.
     *
     * @public
     * @attr
     */
    get duration(): CssTime;
    set duration(value: CssTime);
    /**
     * @public
     * @override
     */
    disconnectedCallback(): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @private
     */
    private onMouseDown;
    /**
     * @private
     */
    private getDimensions;
}
/**
 * @public
 */
export declare namespace RippleElement {
    type Props = IRippleElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-ripple': RippleElement;
    }
}
export {};
//# sourceMappingURL=RippleElement.d.ts.map