/**
 * @module entity-pipeline-panel.component
 * @description Displays pipeline execution progress and results for entity
 * creation/modification. Used in wizard Step 5 and the Modify "Apply" tab.
 *
 * ### Lifecycle
 * The component does NOT start the pipeline automatically on mount — the parent
 * must call `StartExecution()` explicitly.  This keeps "panel visible" and
 * "pipeline running" as separate events, which simplifies the host wizard logic.
 *
 * ### States
 *  - `idle`      → waiting for StartExecution() call
 *  - `running`   → action in flight, spinner shown
 *  - `success`   → pipeline returned Success=true, success card shown
 *  - `failed`    → pipeline returned Success=false, error card shown
 */
import { EventEmitter, AfterViewInit } from '@angular/core';
import type { EntityTableSpec, EntityPipelineResult, PipelineStepSummary } from '../../database-designer.types.js';
import * as i0 from "@angular/core";
type PanelState = 'idle' | 'running' | 'success' | 'failed';
export declare class EntityPipelinePanelComponent implements AfterViewInit {
    private readonly service;
    private readonly cdr;
    /** Table spec to create or modify. */
    TableDefinition: EntityTableSpec | null;
    /** Whether this panel is creating a new entity or altering an existing one. */
    ModificationType: 'create' | 'alter';
    /** Required only in 'alter' mode — ID of the entity being modified. */
    ExistingEntityId: string | null;
    /** When true, `StartExecution()` is called automatically on mount. */
    AutoStart: boolean;
    /** Emitted when the pipeline completes successfully. */
    readonly Completed: EventEmitter<EntityPipelineResult>;
    /** Emitted when the pipeline fails or throws. */
    readonly Errored: EventEmitter<string>;
    State: PanelState;
    PipelineResult: EntityPipelineResult | null;
    ErrorMessage: string;
    Steps: PipelineStepSummary[];
    /**
     * Kick off the pipeline.  Idempotent — calling while already running is a no-op.
     * Called by the parent (wizard step 5 or modify "Apply" tab).
     */
    ngAfterViewInit(): void;
    StartExecution(): Promise<void>;
    /** Reset to idle so the panel can be reused (e.g., "Try Again"). */
    Reset(): void;
    TrackByStep(_: number, step: PipelineStepSummary): string;
    StepIcon(step: PipelineStepSummary): string;
    FormatDuration(ms: number): string;
    /** Summary line for the success card: "4 custom columns + 3 auto-managed". */
    get SuccessColumnSummary(): string;
    get FullTablePath(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EntityPipelinePanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EntityPipelinePanelComponent, "mj-database-pipeline-panel", never, { "TableDefinition": { "alias": "TableDefinition"; "required": false; }; "ModificationType": { "alias": "ModificationType"; "required": false; }; "ExistingEntityId": { "alias": "ExistingEntityId"; "required": false; }; "AutoStart": { "alias": "AutoStart"; "required": false; }; }, { "Completed": "Completed"; "Errored": "Errored"; }, never, never, false, never>;
}
export {};
//# sourceMappingURL=entity-pipeline-panel.component.d.ts.map