/**
 * @fileoverview Classify · Content Item Grid (Phase 4 audit/analytics).
 *
 * Thin, reusable AG Grid listing of content items in one of two modes:
 *   - scoped to a single pipeline run via `[RunID]` (items processed in that run), or
 *   - all items (when `[RunID]` is null).
 *
 * Read-only: uses `ResultType:'simple'` + an explicit narrow `Fields` list, and a
 * load-more / page-size widening approach mirroring the host dashboard. Selecting a
 * row bubbles `(ItemSelected)` UP — this component owns no navigation (the host owns
 * NavigationService and opens the drilldown).
 */
import { EventEmitter } from '@angular/core';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import { ColDef, GridOptions, GridReadyEvent, Theme, RowClickedEvent } from 'ag-grid-community';
import { ClassifyItemGridRow } from '../shared/classify.types';
import * as i0 from "@angular/core";
export declare class ClassifyItemGridComponent extends BaseAngularComponent {
    private cdr;
    /** One page worth of additional rows fetched when "Load more" is clicked. */
    private static readonly PAGE_SIZE;
    /**
     * When set, scope the grid to items processed by this pipeline run. When null,
     * show all content items. Re-fetches on change (setter pattern, not ngOnChanges).
     */
    private _runID;
    set RunID(value: string | null);
    get RunID(): string | null;
    /** When true, the grid loads its data on init. Lets a parent defer the query until the section is shown. */
    private _autoLoad;
    set AutoLoad(value: boolean);
    get AutoLoad(): boolean;
    /** Emits the selected content item's ID when a row is clicked. */
    ItemSelected: EventEmitter<string>;
    Rows: ClassifyItemGridRow[];
    IsLoading: boolean;
    IsLoadingMore: boolean;
    TotalCount: number;
    private _loaded;
    private _pageSize;
    private gridApi;
    get HasMore(): boolean;
    Theme: Theme;
    GridOptions: GridOptions<ClassifyItemGridRow>;
    DefaultColDef: ColDef;
    ColumnDefs: ColDef<ClassifyItemGridRow>[];
    OnGridReady(event: GridReadyEvent<ClassifyItemGridRow>): void;
    OnRowClicked(event: RowClickedEvent<ClassifyItemGridRow>): void;
    /** Public refresh entry point (parent toolbar / load-more handler). */
    Reload(): Promise<void>;
    LoadMore(): Promise<void>;
    private loadItems;
    /**
     * Build the item-level filter that scopes to a pipeline run: the run's
     * ContentSource, optionally bounded by the run's processing window. Returns
     * null on a hard failure (so the caller short-circuits to an empty grid).
     */
    private resolveRunScope;
    /** Format an ISO date value for a SQL string literal (UTC, no tz suffix surprises). */
    private toSqlDate;
    /** Count tags per item for the visible page (one RunView, aggregated client-side). */
    private loadTagCounts;
    private toRow;
    private applyRows;
    /** Build an `IN (...)` filter from item IDs, defensively stripping quotes. */
    private buildItemIDInFilter;
    static ɵfac: i0.ɵɵFactoryDeclaration<ClassifyItemGridComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ClassifyItemGridComponent, "classify-item-grid", never, { "RunID": { "alias": "RunID"; "required": false; }; "AutoLoad": { "alias": "AutoLoad"; "required": false; }; }, { "ItemSelected": "ItemSelected"; }, never, never, false, never>;
}
//# sourceMappingURL=classify-item-grid.component.d.ts.map