import { ElementRef, NgZone, OnDestroy } from '@angular/core';
import { NgClickOutsideExcludeToken } from "./ng-click-outside-exclude.directive";
import * as i0 from "@angular/core";
/**
 * Directive to detect clicks outside of the current element
 *
 * ```typescript
 * @Component({
 *   selector: 'app',
 *   template: `
 *     <div (clickOutside)="onClickedOutside($event)">Click outside this</div>
 *   `
 * })
 * export class AppComponent {
 *   onClickedOutside(e: Event) {
 *     console.log('Clicked outside:', e);
 *   }
 * }
 * ```
 */
export declare class NgClickOutsideDirective implements OnDestroy {
    /**
     * Enables directive.
     */
    clickOutsideEnabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /**
     * A comma-separated list of events to cause the trigger.
     * ### For example, for additional mobile support:
     * `[clickOutsideEvents]="'click,touchstart'"`
     */
    clickOutsideEvents: import("@angular/core").InputSignalWithTransform<string[], string | string[]>;
    /**
     * Outside Click Event
     */
    clickOutside: import("@angular/core").OutputEmitterRef<Event>;
    excludeDirective: NgClickOutsideExcludeToken | null;
    protected _el: ElementRef<any>;
    protected _ngZone: NgZone;
    private document;
    constructor();
    ngOnDestroy(): void;
    protected _init(): void;
    protected _initOnClickBody(): void;
    protected _emit(ev: Event): void;
    protected _initClickOutsideListener(): void;
    protected _removeClickOutsideListener(): void;
    private _onClickBody;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgClickOutsideDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NgClickOutsideDirective, "[clickOutside]:not([delayClickOutsideInit]):not([attachOutsideOnClick])", never, { "clickOutsideEnabled": { "alias": "clickOutsideEnabled"; "required": false; "isSignal": true; }; "clickOutsideEvents": { "alias": "clickOutsideEvents"; "required": false; "isSignal": true; }; }, { "clickOutside": "clickOutside"; }, never, never, true, never>;
}
