/**-----------------------------------------------------------------------------------------
* Copyright © 2026 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](https://www.telerik.com/kendo-angular-ui/components/utils/api/droptargetcontainerdirective).
 * Use this directive to make multiple elements drop targets inside a container.
 *
 * @example
 * ```html
 * <div kendoDropTargetContainer dropTargetFilter=".my-droptarget">
 *   <div class="my-droptarget">
 *     Drop here
 *   </div>
 * </div>
 * ```
 */
export declare class DropTargetContainerDirective implements AfterViewInit {
    private service;
    private element;
    private ngZone;
    private cdr;
    /**
     * Sets a selector for elements in the container to make them drop targets. [See example](https://www.telerik.com/kendo-angular-ui/components/utils/draganddrop/drop-container).
     */
    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 drag target enters a drop target.
     */
    onDragEnter: EventEmitter<DropTargetEvent>;
    /**
     * Fires when a drag target is dragged over a drop target.
     */
    onDragOver: EventEmitter<DropTargetEvent>;
    /**
     * Fires when a drag target leaves a drop target.
     */
    onDragLeave: EventEmitter<DropTargetEvent>;
    /**
     * Fires when a drag target is dropped over a drop target.
     */
    onDrop: EventEmitter<DropTargetEvent>;
    /**
     * Notifies 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>;
}
