import * as React from 'react';
export interface ClickOutsideProps {
    /** A reference to the child root element */
    rootRef: React.RefObject<HTMLElement>;
    /** A callback to be triggered when all requirements for "outside click" are met */
    onClickOutside?: (event: Event) => void;
    /** Elements with this class will not trigger onClickOutside callback */
    excludeClass?: string | string[];
    /** useCapture | options object, specifies characteristics about the event listener */
    options?: boolean | AddEventListenerOptions;
    children?: React.ReactNode;
}
/**
 * Click outside behavior
 */
export declare class ClickOutside extends React.PureComponent<ClickOutsideProps> {
    private readonly _boundEvents;
    constructor(props: ClickOutsideProps);
    /**
     * Register ClickOutside events
     */
    _registerEvents(): void;
    /**
     * Unregister ClickOutside events
     */
    _unregisterEvents(): void;
    componentDidMount(): void;
    componentDidUpdate(prevProps: ClickOutsideProps): void;
    componentWillUnmount(): void;
    /**
     * Check whether the click is inside the element or excluded
     * @param event - Click event
     */
    /**
     * Check whether the click is inside the element or excluded
     * @param event - Click event
     */
    _isInsideClick: (event: any) => true | undefined;
    /**
     * Triggers onClickOutside callback when clicked outside child
     * @param event - Click event
     */
    _onClickOutside: (event: Event) => void;
    render(): React.ReactNode;
}
//# sourceMappingURL=ClickOutside.d.ts.map