import { Component } from 'preact';
import { Coord2d } from '../../core/types';
export interface RippleProps {
    colour?: string;
    color?: string;
}
export declare class Ripple extends Component<RippleProps, {}> {
    static defaultProps: RippleProps;
    private ripples;
    constructor(props?: RippleProps);
    render(): JSX.Element;
    shouldComponentUpdate(): boolean;
    componentDidMount(): void;
    componentWillUnmount(): void;
    private activeRipple;
    private onMouseDown(evt);
    private onMouseUp();
    add(pos: Coord2d, colour: string): RippleRef;
}
export declare class RippleRef {
    position: Coord2d;
    colour: string;
    element: HTMLDivElement;
    parent: HTMLElement;
    locked: boolean;
    done: boolean;
    onDestroy: (ripple: RippleRef) => void;
    constructor(position: Coord2d, colour: string);
    attach(container: HTMLElement, parent?: HTMLElement): void;
    trigger(lock?: boolean): void;
    unlock(): void;
    remove(): void;
    private out();
    private distanceToCorner(rect);
    private setStyles(styles, defer?);
}
