import { EventEmitter, OnInit } from '@angular/core';
import { MJMLAlgorithmEntity, MJMLAlgorithmUseCaseEntity } from '@memberjunction/core-entities';
import { PredictiveStudioEngine, RecommendationLevel } from '../engine/predictive-studio.engine';
import * as i0 from "@angular/core";
interface AlgoCardVM {
    algo: MJMLAlgorithmEntity;
    icon: string;
    problemTypes: string[];
    bestLevel: RecommendationLevel | null;
}
/**
 * Algorithm Catalog panel (mockup algorithms-2): a card gallery of the fixed algorithm catalog plus
 * a "Guide me" scenario picker. Selecting use-case chips highlights and re-sorts the algorithm cards
 * by each algorithm's best RecommendationLevel across the chosen scenarios — driven entirely by the
 * cached MJ: ML Algorithm Use Case Rankings matrix.
 */
export declare class PSCatalogComponent implements OnInit {
    engine: PredictiveStudioEngine;
    /** Emitted with a starter prompt to open + seed the Model Development Agent chat. */
    askAgent: EventEmitter<string>;
    selectedUseCaseIds: string[];
    cards: AlgoCardVM[];
    /** The algorithm whose inline detail panel is expanded (null = none). */
    detailId: string | null;
    ngOnInit(): void;
    get useCases(): MJMLAlgorithmUseCaseEntity[];
    useCaseIcon(uc: MJMLAlgorithmUseCaseEntity): string;
    isSelected(id: string): boolean;
    toggleUseCase(id: string): void;
    clearScenarios(): void;
    /** Toggle the inline detail panel for an algorithm card. */
    toggleDetail(id: string): void;
    /** Seed the Model Development Agent to build a model with the chosen algorithm. */
    useAlgorithm(algo: MJMLAlgorithmEntity): void;
    /** Parse an algorithm's `DefaultHyperparameters` JSON into a small key/value list (≤8 rows). */
    hyperparams(algo: MJMLAlgorithmEntity): {
        k: string;
        v: string;
    }[];
    rank(level: RecommendationLevel): number;
    levelLabel(level: RecommendationLevel): string;
    /**
     * Structured recommendation data for the "Guide me" banner — rendered with plain template
     * interpolation + `<strong>` markup (no `[innerHTML]`). `scenarioLabel` is the human-readable
     * scenario name(s); `primaries` is the list of Primary-fit algorithm names.
     */
    get recommendation(): {
        scenarioLabel: string;
        primaries: string[];
    };
    private rebuildCards;
    static ɵfac: i0.ɵɵFactoryDeclaration<PSCatalogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PSCatalogComponent, "ps-catalog", never, { "engine": { "alias": "engine"; "required": false; }; }, { "askAgent": "askAgent"; }, never, never, true, never>;
}
export {};
//# sourceMappingURL=ps-catalog.component.d.ts.map