/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { OnInit, OnDestroy } from '@angular/core';
import { EditService } from './edit-service.interface';
import { Subscription } from 'rxjs';
import { RemoveConfirmationCallback } from '../common/remove-confirmation';
import { TreeListComponent } from '../treelist.component';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare abstract class EditingDirectiveBase implements OnInit, OnDestroy {
    protected treelist: TreeListComponent;
    /**
     * The edit service that handles the operations.
     */
    set editService(value: EditService);
    get editService(): EditService;
    /**
     * Gets or sets a function that determines the unique identifier
     * for new items. The function receives the `item` and its `parent` as parameters
     * and must return an ID.
     */
    set newItemId(callback: (item: any, parent?: any) => any);
    get newItemId(): (item: any, parent?: any) => any;
    /**
     * A function that confirms if the `dataItem` will be removed.
     */
    removeConfirmation: RemoveConfirmationCallback;
    protected subscriptions: Subscription;
    protected userEditService: EditService;
    protected isNew: boolean;
    protected parent: any;
    protected dataItem: any;
    protected idCallback: any;
    protected abstract createModel(args: any): any;
    protected abstract saveModel(args: any): any;
    constructor(treelist: TreeListComponent);
    /**
     * @hidden
     */
    ngOnInit(): void;
    /**
     * @hidden
     */
    ngOnDestroy(): void;
    protected get defaultEditService(): EditService;
    protected addHandler({ parent }: any): void;
    protected saveHandler(args: any): void;
    protected cancelHandler(args: any): void;
    protected removeHandler({ dataItem, parent }: any): void;
    protected closeEditor(args?: any): void;
    protected clean(): void;
    protected onStateChange(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EditingDirectiveBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EditingDirectiveBase, never, never, { "editService": { "alias": "editService"; "required": false; }; "newItemId": { "alias": "newItemId"; "required": false; }; "removeConfirmation": { "alias": "removeConfirmation"; "required": false; }; }, {}, never, never, true, never>;
}
