/**
 * @fileoverview Classify · Run History tab.
 *
 * Self-contained sub-page: owns its header-interior, the run table, filters,
 * and the per-run detail panel. Receives the shared raw run list from the host
 * via `[Runs]` (the host is the data orchestrator); loads per-run detail rows
 * on demand itself. Cross-tab navigation (none today) would bubble via @Output.
 */
import { EventEmitter } from '@angular/core';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
import { RunHistoryRow, RunDetailRow } from '../shared/classify.types';
import { formatTokenCount } from '../shared/classify.format';
import * as i0 from "@angular/core";
export declare class ClassifyHistoryTabComponent extends BaseAngularComponent {
    private cdr;
    /** Shared raw `MJ: Content Process Runs` rows, supplied by the host orchestrator. */
    private _runs;
    set Runs(value: Record<string, unknown>[]);
    get Runs(): Record<string, unknown>[];
    /** Total run count in the DB (from TotalRowCount) — drives the "Showing X of Y" line. */
    TotalRunCount: number;
    /** True while the host is fetching the next page in response to LoadMoreRequested. */
    IsLoadingMore: boolean;
    /** Bubble a "load more" request to the host, which widens the loaded window. */
    LoadMoreRequested: EventEmitter<void>;
    /**
     * Bubble a content-item selection (from the per-run item grid) up to the host,
     * which owns NavigationService + the drilldown slide-in.
     */
    ItemSelected: EventEmitter<string>;
    onItemSelected(itemID: string): void;
    /** Whether more runs exist in the DB than are currently loaded. */
    get HasMoreRuns(): boolean;
    onLoadMore(): void;
    /** Shown while the host reloads the run list in response to RefreshRequested. */
    IsLoading: boolean;
    /**
     * Bubble a refresh request up to the host, which owns the run-history data
     * (`MJ: Content Process Runs`). The host reloads and re-binds `[Runs]`, whose
     * setter rebuilds the rows; the host also clears IsLoading via [Loading].
     */
    RefreshRequested: EventEmitter<void>;
    RunHistoryRows: RunHistoryRow[];
    FilteredRunRows: RunHistoryRow[];
    HistorySourceFilter: string;
    HistoryStatusFilter: string;
    HistorySourceOptions: string[];
    SelectedRunID: string | null;
    RunDetailRows: RunDetailRow[];
    IsLoadingRunDetail: boolean;
    readonly FormatTokenCount: typeof formatTokenCount;
    /**
     * Ask the host to reload the run history. Data is host-owned, so we surface a
     * loading state and emit; the new `[Runs]` binding clears IsLoading.
     */
    Refresh(): void;
    private buildRunHistoryRows;
    private buildHistorySourceOptions;
    FilterRunHistory(): void;
    /**
     * Filter fields for the Run History section, rendered inside an
     * `<mj-filter-popover>` (many values, single-select → popover with dropdown).
     */
    get historyFilterFields(): FilterFieldConfig[];
    get historyFilterValues(): Record<string, unknown>;
    get historyActiveFilterCount(): number;
    onHistoryFilterChange(values: Record<string, unknown>): void;
    onHistoryFilterReset(): void;
    /** Open (or toggle closed) the detail view for a run, loading its per-source detail rows. */
    OpenRunDetail(runID: string): Promise<void>;
    CloseRunDetail(): void;
    private loadRunDetailRows;
    static ɵfac: i0.ɵɵFactoryDeclaration<ClassifyHistoryTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ClassifyHistoryTabComponent, "classify-history-tab", never, { "Runs": { "alias": "Runs"; "required": false; }; "TotalRunCount": { "alias": "TotalRunCount"; "required": false; }; "IsLoadingMore": { "alias": "IsLoadingMore"; "required": false; }; }, { "LoadMoreRequested": "LoadMoreRequested"; "ItemSelected": "ItemSelected"; "RefreshRequested": "RefreshRequested"; }, never, never, false, never>;
}
//# sourceMappingURL=history-tab.component.d.ts.map