/**
 * @fileoverview Knowledge Hub Configuration Resource Component
 *
 * Full configuration dashboard for Knowledge Hub infrastructure:
 * Vector DB provider management, vector index CRUD, embedding model selection,
 * pipeline settings, full-text index config, and scoring thresholds.
 */
import { OnDestroy, AfterViewInit } from '@angular/core';
import { ResourceData } from '@memberjunction/core-entities';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import * as i0 from "@angular/core";
/** Configuration section definition */
interface ConfigSection {
    ID: string;
    Label: string;
    Icon: string;
    Description: string;
}
/** Pipeline configuration settings */
interface PipelineConfig {
    AutotagOnIngest: boolean;
    VectorizeOnIngest: boolean;
    DefaultBatchSize: number;
    MaxConcurrentJobs: number;
}
/** Threshold settings */
interface ThresholdConfig {
    DuplicateAbsolute: number;
    DuplicatePotential: number;
    SearchRelevance: number;
    AutotagConfidence: number;
}
/** Vector DB provider display record */
interface VectorDBRecord {
    ID: string;
    Name: string;
    ClassKey: string;
    Description: string;
}
/** Vector index display record */
interface VectorIndexRecord {
    ID: string;
    Name: string;
    EmbeddingModel: string;
    EmbeddingModelID: string;
    VectorDatabase: string;
    VectorDatabaseID: string;
}
/** Embedding model display record */
interface EmbeddingModelRecord {
    ID: string;
    Name: string;
}
/** Full-text searchable entity */
interface FTSEntityRecord {
    EntityName: string;
    IndexedFields: string[];
    TitleField: string;
    SnippetField: string;
    Enabled: boolean;
}
export declare class KnowledgeConfigResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
    private cdr;
    private destroy$;
    GetResourceDisplayName(_data: ResourceData): Promise<string>;
    GetResourceIconClass(_data: ResourceData): Promise<string>;
    Sections: ConfigSection[];
    ActiveSection: string;
    IsLoading: boolean;
    IsSaving: boolean;
    HasUnsavedChanges: boolean;
    PipelineSettings: PipelineConfig;
    ThresholdSettings: ThresholdConfig;
    VectorDBProviders: VectorDBRecord[];
    get HasVectorDBProvider(): boolean;
    VectorIndexes: VectorIndexRecord[];
    get HasVectorIndex(): boolean;
    EmbeddingModels: EmbeddingModelRecord[];
    get HasEmbeddingModel(): boolean;
    get EmbeddingModelName(): string;
    private entityDocuments;
    get SetupStepsCompleted(): number;
    get VectorSetupComplete(): boolean;
    FTSEntities: FTSEntityRecord[];
    IsLoadingFTSEntities: boolean;
    FTSFilterText: string;
    get EnabledFTSCount(): number;
    get FilteredFTSEntities(): FTSEntityRecord[];
    ShowCreateIndexForm: boolean;
    IsCreatingIndex: boolean;
    NewIndexName: string;
    NewIndexVectorDBID: string;
    NewIndexEmbeddingModelID: string;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    SelectSection(sectionId: string): void;
    OnSettingChanged(): void;
    SaveConfiguration(): Promise<void>;
    ResetConfiguration(): void;
    /** Handle toggling an FTS entity */
    OnFTSEntityToggled(entity: FTSEntityRecord): void;
    FormatThreshold(value: number): string;
    /** Open the create index inline form */
    OpenCreateIndexForm(): void;
    /** Cancel creating an index */
    CancelCreateIndex(): void;
    /** Create a new vector index */
    CreateIndex(): Promise<void>;
    /** Delete a vector index */
    DeleteIndex(indexId: string): Promise<void>;
    private loadConfiguration;
    private loadFTSEntities;
    private loadVectorDBProvidersFromEngine;
    private loadVectorIndexesFromEngine;
    /** Load entity documents and seed threshold settings from the first document's values */
    private loadEntityDocumentsAndThresholds;
    /** Persist threshold settings back to all active entity documents */
    private persistThresholdsToEntityDocuments;
    private loadEmbeddingModels;
    static ɵfac: i0.ɵɵFactoryDeclaration<KnowledgeConfigResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KnowledgeConfigResourceComponent, "app-knowledge-config-resource", never, {}, {}, never, never, false, never>;
}
/** Tree-shaking prevention */
export declare function LoadKnowledgeConfigResource(): void;
export {};
//# sourceMappingURL=knowledge-config-resource.component.d.ts.map