/**
 * @fileoverview Content Autotagging Pipeline Monitor
 *
 * Operations dashboard for monitoring the content autotagging pipeline.
 * Displays KPI metrics, pipeline stage visualization, recent processing feed,
 * and source configuration status.
 */
import { OnDestroy, AfterViewInit } from '@angular/core';
import { ResourceData } from '@memberjunction/core-entities';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import * as i0 from "@angular/core";
/** Represents a single pipeline stage with its current status */
interface PipelineStage {
    Name: string;
    Icon: string;
    ActiveCount: number;
    Status: 'idle' | 'active' | 'error';
}
/** Summary of a recently processed content item */
interface ProcessedItem {
    Name: string;
    SourceName: string;
    ProcessingTimeMs: number;
    Status: 'Complete' | 'Error' | 'Processing';
    TagCount: number;
    ProcessedAt: Date;
}
/** Summary of a configured content source */
interface ContentSource {
    ID: string;
    Name: string;
    TypeName: string;
    TypeIcon: string;
    Status: 'Active' | 'Paused' | 'Error';
    LastRunAt: Date | null;
    ItemCount: number;
}
/** KPI metric card data */
interface KPIMetric {
    Label: string;
    Value: number;
    Icon: string;
    ColorClass: string;
}
export declare class AutotaggingPipelineResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
    private destroy$;
    IsLoading: boolean;
    ErrorMessage: string;
    KPIMetrics: KPIMetric[];
    PipelineStages: PipelineStage[];
    ProcessedItems: ProcessedItem[];
    ContentSources: ContentSource[];
    private contentItems;
    private contentRuns;
    private contentTags;
    private contentSourceTypes;
    private contentSourcesRaw;
    private cdr;
    ngAfterViewInit(): Promise<void>;
    ngOnDestroy(): void;
    GetResourceDisplayName(_data: ResourceData): Promise<string>;
    GetResourceIconClass(_data: ResourceData): Promise<string>;
    /** Load all pipeline data from MJ entities */
    LoadData(): Promise<void>;
    /** Refresh pipeline status data */
    RefreshData(): Promise<void>;
    /** Format milliseconds into a human-readable duration */
    FormatDuration(ms: number): string;
    /** Format a date as a relative time string */
    FormatRelativeTime(date: Date | null): string;
    /** Get CSS class for a processing status */
    GetStatusClass(status: string): string;
    /** Get icon for a source type */
    GetSourceTypeIcon(typeName: string): string;
    /** Build KPI metrics from loaded data */
    private buildKPIMetrics;
    /** Build pipeline stage visualization data */
    private buildPipelineStages;
    /** Group content runs by their processing stage */
    private groupRunsByStage;
    /** Create a pipeline stage object from run data */
    private createStage;
    /** Build the recent processing feed from content items and tags */
    private buildProcessedItems;
    /** Count tags per content item */
    private countTagsByItem;
    /** Map raw status values to display status */
    private mapItemStatus;
    /** Build content source summaries from raw data */
    private buildContentSources;
    /** Build a map of source type IDs to names */
    private buildTypeMap;
    /** Count content items per source */
    private countItemsBySource;
    /** Map raw source status to display status */
    private mapSourceStatus;
    static ɵfac: i0.ɵɵFactoryDeclaration<AutotaggingPipelineResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AutotaggingPipelineResourceComponent, "app-autotagging-pipeline-resource", never, {}, {}, never, never, false, never>;
}
export declare function LoadAutotaggingPipelineResource(): void;
export {};
//# sourceMappingURL=autotagging-pipeline-resource.component.d.ts.map