/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { FormGroup } from "@angular/forms";
import type { GanttComponent } from "../../gantt.component";
/**
 * Contains the event data for task editing events.
 */
export interface TaskEditEvent {
    /**
     * Holds the `TaskEditItem` for the edited task.
     * Access the parent item through the `parent` property to update all ancestors.
     */
    item: TaskEditItem;
    /**
     * Holds the `FormGroup` instance for the edited task.
     */
    taskFormGroup?: FormGroup;
    /**
     * Holds the dependencies for the edited task.
     */
    dependencies: EditEventDependencies;
    /**
     * Holds the `GanttComponent` instance.
     */
    sender: GanttComponent;
}
/**
 * Represents the `TaskEditItem` associated with the edited task.
 * Access the parent item through the `parent` property to update all ancestors.
 */
export interface TaskEditItem {
    /**
     * Holds the original data item for this entry.
     */
    dataItem: any;
    /**
     * Holds the parent data item and its parent data.
     * If the current data item is at root level, this property is `null`.
     */
    parent?: TaskEditItem;
}
/**
 * Provides the `EditEventDependencies` object associated with the edited task.
 * You can access the created, updated, and deleted items through the respective properties.
 */
export interface EditEventDependencies {
    /**
     * Lists the newly created dependencies.
     */
    createdItems: any[];
    /**
     * Lists the updated dependencies.
     */
    updatedItems: any[];
    /**
     * Lists the deleted dependencies.
     */
    deletedItems: any[];
}
/**
 * @hidden
 */
export type EditResultType = 'save' | 'remove' | 'cancel';
/**
 * @hidden
 */
export interface EditEvent {
    taskFormGroup: FormGroup;
    dataItem: any;
    dependencies: EditEventDependencies;
    editResultType: EditResultType;
}
