/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone } from '@angular/core';
import { NormalizedDragEvent } from '@progress/kendo-draggable-common';
import { DragStateService } from './drag-state.service';
import { DropTargetEvent } from './events/drop-target-event';
import * as i0 from "@angular/core";
/**
 * Represents the [Kendo UI DropTargetContainer directive for Angular]({% slug api_utils_droptargetcontainerdirective %}).
 * Used to configure multiple elements as drop targets.
 *
 * @example
 * ```ts-no-run
 * <div kendoDropTargetContainer dropTargetFilter=".my-droptarget">
 *    <div class="my-droptarget">foo</div>
 * </div>
 * ```
 */
export declare class DropTargetContainerDirective implements AfterViewInit {
    private service;
    private element;
    private ngZone;
    private cdr;
    /**
     * Specifies a selector for elements within a container which will be configured as drop targets
     * ([see example]({% slug drop_target_container %})). The possible values include any
     * DOM `selector`.
     */
    set dropTargetFilter(value: string);
    get dropTargetFilter(): string;
    /**
     * Specifies whether the Drop Targets within the container will emit the corresponding events upon interaction with a Drag Target.
     */
    set dropDisabled(value: boolean);
    get dropDisabled(): boolean;
    /**
     * Fires when a DragTarget element enters the DropTarget.
     */
    onDragEnter: EventEmitter<DropTargetEvent>;
    /**
     * Fires when a DragTarget element is being dragged over the DropTarget.
     */
    onDragOver: EventEmitter<DropTargetEvent>;
    /**
     * Fires when a DragTarget element leaves the DropTarget.
     */
    onDragLeave: EventEmitter<DropTargetEvent>;
    /**
     * Fires when a DragTarget element is dropped over the DropTarget.
     */
    onDrop: EventEmitter<DropTargetEvent>;
    /**
     * Used for notifying the DropTargetContainer that its content has changed.
     */
    notify(): void;
    constructor(service: DragStateService, element: ElementRef, ngZone: NgZone, cdr: ChangeDetectorRef);
    private currentDropTargetElement;
    private previousDropTargets;
    private _dropTargetFilter;
    private _dropDisabled;
    private get nativeElement();
    ngAfterViewInit(): void;
    private get allDropTargets();
    /**
     * @hidden
     */
    handleDragEnter(event: NormalizedDragEvent): void;
    /**
     * @hidden
     */
    handleDragLeave(event: NormalizedDragEvent): void;
    /**
     * @hidden
     */
    handleDragOver(event: NormalizedDragEvent): void;
    /**
     * @hidden
     */
    handleDrop(event: NormalizedDragEvent): void;
    private initializeDropTargets;
    private emitZoneAwareEvent;
    private getDropIndex;
    private clearPreviousTargets;
    static ɵfac: i0.ɵɵFactoryDeclaration<DropTargetContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DropTargetContainerDirective, "[kendoDropTargetContainer]", ["kendoDropTargetContainer"], { "dropTargetFilter": { "alias": "dropTargetFilter"; "required": false; }; "dropDisabled": { "alias": "dropDisabled"; "required": false; }; }, { "onDragEnter": "onDragEnter"; "onDragOver": "onDragOver"; "onDragLeave": "onDragLeave"; "onDrop": "onDrop"; }, never, never, true, never>;
}
