/**
 * @module database-modify.component
 * @description Slide-over view for modifying an existing Database Designer entity.
 *
 * Rendered inside an `mj-slide-panel` by the dashboard when the user clicks Edit.
 * Presents three tabs:
 *   1. Fields  — EntityFieldsGridComponent in modify mode (existing + new columns)
 *   2. Review  — EntityReviewPanelComponent showing diff (new cols highlighted)
 *   3. Apply   — EntityPipelinePanelComponent for running the alter pipeline
 *
 * On tab 3 ("Apply"), clicking "Apply Changes" calls `pipelinePanel.StartExecution()`.
 * The pipeline panel then calls `DatabaseDesignerService.modifyEntity()`.
 */
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
import type { AccessibleEntityDetail, ColumnSpec, EntityTableSpec, EntityPipelineResult } from '../../database-designer.types.js';
import * as i0 from "@angular/core";
type ModifyTab = 'fields' | 'review' | 'apply';
export declare class DatabaseModifyComponent implements OnInit, OnDestroy {
    private readonly cdr;
    set EntityId(v: string);
    get EntityId(): string;
    private _entityId;
    private _initialized;
    readonly EntityModified: EventEmitter<EntityPipelineResult>;
    readonly Cancelled: EventEmitter<void>;
    ActiveTab: ModifyTab;
    IsLoading: boolean;
    LoadError: string | null;
    EntityDetail: AccessibleEntityDetail | null;
    /** Columns being edited — starts from existing entity fields + user additions. */
    EditedColumns: ColumnSpec[];
    IsPipelineRunning: boolean;
    CanApplyChanges: boolean;
    private pipelinePanel?;
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    SetTab(tab: ModifyTab): void;
    OnColumnsChanged(columns: ColumnSpec[]): void;
    OnApplyChanges(): void;
    OnPipelineCompleted(result: EntityPipelineResult): void;
    OnPipelineErrored(_msg: string): void;
    OnCancel(): void;
    get CurrentTableSpec(): EntityTableSpec | null;
    get ExistingColumns(): ColumnSpec[];
    private loadEntityDetail;
    /** True if the user added new columns or changed any existing column. */
    private hasChanges;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatabaseModifyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatabaseModifyComponent, "mj-database-modify", never, { "EntityId": { "alias": "EntityId"; "required": false; }; }, { "EntityModified": "EntityModified"; "Cancelled": "Cancelled"; }, never, never, false, never>;
}
export {};
//# sourceMappingURL=database-modify.component.d.ts.map