import type { EntityTableSpec, ColumnSpec, ForeignKeySpec } from '../../database-designer.types.js';
import * as i0 from "@angular/core";
/** Internal view model for a row in the review table. */
interface ReviewRow {
    column: ColumnSpec;
    /** 'existing' | 'new' | 'hidden' — only populated in alter mode. */
    diffState: 'existing' | 'new' | 'hidden' | 'unchanged';
    sqlType: string;
}
export declare class EntityReviewPanelComponent {
    /** The table / entity definition being reviewed. */
    set TableDefinition(v: EntityTableSpec | null);
    get TableDefinition(): EntityTableSpec | null;
    private _tableDefinition;
    /** 'create' (all rows are new) vs 'alter' (diff against existingColumns). */
    set ModificationType(v: 'create' | 'alter');
    get ModificationType(): 'create' | 'alter';
    private _modificationType;
    /** Columns already in the DB — used in alter mode to compute the diff. */
    set ExistingColumns(v: ColumnSpec[]);
    get ExistingColumns(): ColumnSpec[];
    private _existingColumns;
    /** Prepared rows ready for the template. */
    Rows: ReviewRow[];
    /** Convenient accessor for the template. */
    get ForeignKeys(): ForeignKeySpec[];
    TrackByName(_: number, row: ReviewRow): string;
    private rebuildRows;
    private diffState;
    /** Resolve a human-readable SQL type from the ColumnSpec. */
    private resolveSqlType;
    static ɵfac: i0.ɵɵFactoryDeclaration<EntityReviewPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EntityReviewPanelComponent, "mj-database-review-panel", never, { "TableDefinition": { "alias": "TableDefinition"; "required": false; }; "ModificationType": { "alias": "ModificationType"; "required": false; }; "ExistingColumns": { "alias": "ExistingColumns"; "required": false; }; }, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=entity-review-panel.component.d.ts.map