/**
 * @fileoverview Knowledge Hub — Feature Pipelines dashboard tab.
 *
 * Full-page resource component listing the **Feature Pipelines** (Predictive
 * Studio SP6 / `plans/predictive-studio.md` §5.4). A Feature Pipeline has no
 * dedicated entity: it IS an `MJ: Record Processes` row categorized into the
 * seeded "Feature Pipeline" category (Infer / Action / Agent + a write-back
 * `OutputMapping`). This surface makes them first-class + discoverable +
 * monitorable inside Knowledge Hub:
 *
 *   - lists the feature-pipeline Record Processes (from {@link FeaturePipelineEngine}),
 *   - shows each one's target entity, written attribute, and last-run / freshness,
 *   - offers **Run** (invokes the existing `PredictiveStudio.RunFeaturePipeline`
 *     Remote Operation via the provider's `RouteOperation` seam — the same
 *     hardened Record Set Processing run path), and
 *   - an **authoring** entry that opens the reusable `mj-record-process-editor`
 *     (from `@memberjunction/ng-record-process-studio`) in a dialog — we do NOT
 *     rebuild the authoring surface.
 *
 * Registered as `BaseResourceComponent` driver `FeaturePipelinesResource`; wired
 * into the Knowledge Hub application's nav via metadata (`DriverClass`).
 */
import { OnDestroy, AfterViewInit } from '@angular/core';
import { Subject } from 'rxjs';
import { ResourceData, MJRecordProcessEntity } from '@memberjunction/core-entities';
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
import { type FeaturePipelineSummary, type FeaturePipelineRunStatus } from './feature-pipeline.engine';
import * as i0 from "@angular/core";
export declare class FeaturePipelinesResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
    private cdr;
    protected navigationService: NavigationService;
    protected destroy$: Subject<void>;
    GetResourceDisplayName(_data: ResourceData): Promise<string>;
    GetResourceIconClass(_data: ResourceData): Promise<string>;
    /** True while the engine is loading its caches. */
    IsLoading: boolean;
    /** All feature-pipeline summaries (unfiltered). */
    AllPipelines: FeaturePipelineSummary[];
    /** Pipelines after the search filter is applied (what the cards render). */
    FilteredPipelines: FeaturePipelineSummary[];
    /** Free-text search over name / target entity / output attribute. */
    SearchQuery: string;
    /** Ids of pipelines with a Run currently in flight (disables their Run button). */
    RunningIDs: Set<string>;
    /** Authoring dialog state. */
    ShowEditor: boolean;
    /** Record Process id being authored, or null for a new draft. */
    EditingPipelineID: string | null;
    /** Count of pipelines whose underlying Record Process is Active. */
    get ActiveCount(): number;
    /** Count of pipelines that have never run. */
    get NeverRunCount(): number;
    /** Count of pipelines whose most recent run failed. */
    get FailedCount(): number;
    ngAfterViewInit(): Promise<void>;
    ngOnDestroy(): void;
    /** Reload the engine caches from the server. */
    Refresh(): Promise<void>;
    /** Apply the search filter (called on every keystroke). */
    OnSearchChanged(): void;
    /** Open the authoring editor for a brand-new feature pipeline draft. */
    OnNewPipeline(): void;
    /** Open the authoring editor for an existing feature pipeline. */
    OnEditPipeline(pipeline: FeaturePipelineSummary): void;
    /**
     * Run a feature pipeline on demand by invoking the
     * `PredictiveStudio.RunFeaturePipeline` Remote Operation through the active
     * provider. The op delegates to the Record Set Processing substrate — the same
     * batching/resume/audit path the rest of the platform uses.
     */
    OnRunPipeline(pipeline: FeaturePipelineSummary): Promise<void>;
    /** Whether a given pipeline currently has a Run in flight. */
    IsRunning(pipelineID: string): boolean;
    /** Called when the editor saves — refresh and close. */
    OnEditorSaved(_record: MJRecordProcessEntity): Promise<void>;
    /** Called when the editor is cancelled — just close. */
    OnEditorCancelled(): void;
    /** Font Awesome icon for a pipeline's work type. */
    WorkTypeIcon(workType: FeaturePipelineSummary['WorkType']): string;
    /** CSS modifier class for a run-status pill. */
    RunStatusClass(status: FeaturePipelineRunStatus): string;
    /** Human-readable label for a run status. */
    RunStatusLabel(status: FeaturePipelineRunStatus): string;
    /** Relative "x ago" string for the last-run timestamp. */
    TimeAgo(date: Date | null): string;
    /** The engine instance scoped to the active provider (multi-provider safe). */
    private get engine();
    private loadData;
    /**
     * Re-derive the summaries whenever the engine's cached Record Processes or
     * Process Runs change (save / delete / remote-invalidate elsewhere) — reactivity
     * for free from the BaseEngine streams.
     */
    private subscribeToEngine;
    private applyFilter;
    private notifyRunResult;
    private emitAgentContext;
    /** Resolve a pipeline reference (id/name/contains) or return a tolerant failure. */
    private resolvePipelineOrFail;
    private registerAgentTools;
    static ɵfac: i0.ɵɵFactoryDeclaration<FeaturePipelinesResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FeaturePipelinesResourceComponent, "app-feature-pipelines-resource", never, {}, {}, never, never, false, never>;
}
/** Tree-shaking prevention — keeps the component in the bundle. */
export declare function LoadFeaturePipelinesResource(): void;
//# sourceMappingURL=feature-pipelines-resource.component.d.ts.map