import { ComponentInterface } from '../../stencil-public-runtime';
declare type ClickOutsideDecorator = (target: ComponentInterface, propertyKey: string) => void;
declare interface ClickOutsideOptions {
  triggerEvents?: string;
  exclude?: string;
}
/**
 * Call this function as soon as the click outside of annotated method's host is done.
 * @example
```
@ClickOutside()
callback() {
  // this will run when click outside of element (host component) is done.
}
```
 */
export default function ClickOutside(opt?: ClickOutsideOptions): ClickOutsideDecorator;
/**
 * Register callback function for HTMLElement to be executed when user clicks outside of element.
 * @example
```
<span
    ref={spanEl => registerClickOutside(this, spanEl, () => this.test())}>
      Hello, World!
</span>;
```
 */
export declare function registerClickOutside(component: ComponentInterface, element: HTMLElement, callback: () => void, opt?: ClickOutsideOptions): void;
/**
 * Remove click outside callback function for HTMLElement.
 */
export declare function removeClickOutside(component: ComponentInterface, element: HTMLElement, callback: () => void, opt?: ClickOutsideOptions): void;
export {};
