/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter, NgZone } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { Observable } from 'rxjs';
import { EditMode } from '../types';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export type CommandAction = 'edit' | 'remove' | 'cancel' | 'save' | 'add';
/**
 * @hidden
 */
export type CommandEvent = {
    action: CommandAction;
    dataItem?: any;
    formGroup?: FormGroup;
    isNew?: boolean;
    mode?: EditMode;
};
/**
 * @hidden
 */
export type Entity = {
    dataItem: any;
    formGroup: any;
    mode?: EditMode;
};
/**
 * @hidden
 */
export declare class EditService {
    ngZone: NgZone;
    changes: EventEmitter<CommandEvent>;
    changed: Observable<any>;
    editedEvent: Entity;
    newEventGroup: any;
    private changedSource;
    constructor(ngZone: NgZone);
    endEdit(): void;
    removeEvent(dataItem: any): void;
    addEvent(formGroup: FormGroup): void;
    editEvent(dataItem: any, formGroup?: FormGroup, mode?: EditMode): void;
    close(): void;
    save(): void;
    isEditing(): boolean;
    get occurrenceEditMode(): EditMode;
    get hasNewEvent(): boolean;
    get newEvent(): any;
    get context(): Entity;
    private onChanged;
    static ɵfac: i0.ɵɵFactoryDeclaration<EditService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<EditService>;
}
