/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { OnChanges, OnDestroy, OnInit, SimpleChanges, EventEmitter, ChangeDetectorRef } from '@angular/core';
import { SchedulerComponent } from '../../scheduler.component';
import { SlotRange } from '../../types/slot-selection';
import * as i0 from "@angular/core";
/**
 * Represents a directive that manages the built-in slot selection in the Scheduler.
 *
 * Add the `kendoSchedulerSlotSelectable` directive to a `<kendo-scheduler>` instance to allow users to select time slots by clicking or dragging.
 *
 * The directive keeps track of the selected slot range and emits changes when the selection is updated by user interaction.
 *
 * @example
 * ```html
 * <kendo-scheduler kendoSchedulerSlotSelectable [(slotSelection)]="selectedSlot">
 * </kendo-scheduler>
 * ```
 *
 * @remarks
 * Applied to: {@link SchedulerComponent}
 */
export declare class SlotSelectableDirective implements OnInit, OnChanges, OnDestroy {
    private scheduler;
    private cdr;
    /**
     * Represents the currently selected slot range.
     */
    slotSelection: SlotRange;
    /**
     * Fires when the user changes the currently selected slot range.
     */
    slotSelectionChange: EventEmitter<SlotRange>;
    /**
     * @hidden
     * The resources of the cell where the selection started.
     * When dragging over the slots of a different resource in grouped mode, the ongoing selection will not be affected.
     */
    private selectionOriginResources;
    private selectedRange;
    private rangeBeforeDrag;
    private slotSelectionChangeSource;
    private subscriptions;
    constructor(scheduler: SchedulerComponent, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private isSlotSelected;
    private initDragSelect;
    private onDrag;
    private onRelease;
    private onSlotClick;
    /**
     * @hidden
     * Checks if the selected range contains a local date range.
     */
    private isInRange;
    static ɵfac: i0.ɵɵFactoryDeclaration<SlotSelectableDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SlotSelectableDirective, "[kendoSchedulerSlotSelectable]", never, { "slotSelection": { "alias": "slotSelection"; "required": false; }; }, { "slotSelectionChange": "slotSelectionChange"; }, never, never, true, never>;
}
