import { EventEmitter, OnInit } from '@angular/core';
import { IMetadataProvider, UserInfo } from '@memberjunction/core';
import { PredictiveStudioEngine } from '../engine/predictive-studio.engine';
import { PSPanelKey } from '../predictive-studio.types';
import { PSActivityFeedItem, PSHomeKpis } from '../predictive-studio.view-models';
import * as i0 from "@angular/core";
export { PS_AGENT_STARTER_PROMPT } from './ps-agent-starter-prompt';
/**
 * Home panel — the action-forward landing: a hero "Build a predictive model" band with three entry
 * paths, a vertical recent-activity timeline, and a side rail of weekly KPIs. Fully live:
 *
 * - **KPIs** (published count, active experiments, best holdout AUC, scored-this-week) come from the
 *   cached models/sessions + recent ML scoring runs loaded on demand, via {@link computeHomeKpis}.
 * - **Recent activity** merges recent ML scoring process runs and recent model promotions/archives
 *   into one reverse-chronological feed via {@link buildActivityFeed}.
 *
 * Recent scoring runs are loaded once on init (cheap, capped) — `MJ: Process Runs` isn't bulk-cached
 * because it grows unbounded. 100% entity-agnostic.
 *
 * **"Ask the agent" entry path.** The hero CTA and the agent entry-path card emit {@link askAgent} with a
 * starter prompt string. The host resource (the Studio door's `PSStudioResourceComponent`) reveals the
 * docked Model Development Agent chat seeded with that prompt. The prompt is a deliberately entity-agnostic template
 * ({@link PS_AGENT_STARTER_PROMPT}) — it never names a specific entity/target, so Predictive Studio stays
 * 100% domain-neutral and the agent leads the user through choosing what to predict.
 */
export declare class PSHomeComponent implements OnInit {
    engine: PredictiveStudioEngine;
    /** Provider to load recent scoring runs through (multi-provider correctness). */
    provider: IMetadataProvider | null;
    /** Acting user for the on-demand scoring-runs load. */
    currentUser: UserInfo | null;
    navigate: EventEmitter<PSPanelKey>;
    /**
     * Emitted when the user clicks an "Ask the agent" entry path. The payload is the starter prompt to seed
     * the Model Development Agent chat with — the entity-agnostic {@link PS_AGENT_STARTER_PROMPT} by default.
     */
    askAgent: EventEmitter<string>;
    private cdr;
    /** Entry-path handler — emits {@link askAgent} with the default entity-agnostic starter prompt. */
    onAskAgent(): void;
    /** Derived KPI strip. Starts from the synchronously-available counts, refined once runs load. */
    kpis: PSHomeKpis;
    /** Recent-activity timeline. */
    activity: PSActivityFeedItem[];
    /** Cached recent scoring runs (loaded on demand). */
    private scoringRuns;
    ngOnInit(): Promise<void>;
    /** Load the recent ML scoring runs once (cheap, capped) for the KPI + activity feed. */
    private loadScoringRuns;
    /** Recompute the KPI strip + activity feed from the current cached data + scoring runs. */
    private rebuild;
    static ɵfac: i0.ɵɵFactoryDeclaration<PSHomeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PSHomeComponent, "ps-home", never, { "engine": { "alias": "engine"; "required": false; }; "provider": { "alias": "provider"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "navigate": "navigate"; "askAgent": "askAgent"; }, never, never, true, never>;
}
//# sourceMappingURL=ps-home.component.d.ts.map