import Modifier from 'ember-modifier';
interface Named {
    onOutsideClick: (event: Event) => void;
    isDisabled?: boolean;
    onMouseDown?: (event: MouseEvent | TouchEvent) => void;
    onMouseUp?: (event: MouseEvent | TouchEvent) => void;
    onTouchStart?: (event: MouseEvent | TouchEvent) => void;
    onTouchEnd?: (event: MouseEvent | TouchEvent) => void;
}
type Positional = [];
interface OutsideClickDetectorModifierArgs {
    Element: Element;
    Args: {
        Positional: Positional;
        Named: Named;
    };
}
export interface EuiEvent extends Event {
    euiGeneratedBy: string[];
}
export default class OutsideClickDetector extends Modifier<OutsideClickDetectorModifierArgs> {
    id: string;
    capturedDownIds: string[];
    element?: HTMLElement;
    named?: Named;
    positional?: Positional;
    onClickOutside(e: Event): void;
    modify(element: HTMLElement, positional: Positional, named: Named): void;
    _setup(): void;
    _teardown(): void;
    addElementEvents(): void;
    removeElementEvents(): void;
    onChildClick(event: MouseEvent | TouchEvent, cb: (event: MouseEvent | TouchEvent) => void): void;
    onChildMouseDown(event: MouseEvent | TouchEvent): any;
    onChildMouseUp(event: TouchEvent | MouseEvent): any;
}
export {};
//# sourceMappingURL=outside-click-detector.d.ts.map