import { BaseEngine, IMetadataProvider, UserInfo } from "@memberjunction/core";
import { MJEntityDocumentEntity, MJVectorIndexEntity, MJContentSourceEntity, MJContentTypeEntity, MJContentSourceTypeEntity, MJContentFileTypeEntity } from "../generated/entity_subclasses.js";
/**
 * Caches Knowledge Hub metadata: entity documents, vector indexes, vector databases,
 * content sources, content types, content source types, and content file types.
 * Provides helper methods for lookups and filtering. Uses BaseEngine for automatic
 * caching and entity-event auto-refresh.
 */
export declare class KnowledgeHubMetadataEngine extends BaseEngine<KnowledgeHubMetadataEngine> {
    /**
     * Returns the global instance of the class. This is a singleton class, so there
     * is only one instance of it in the application. Do not directly create new instances
     * of it, always use this method to get the instance.
     */
    static get Instance(): KnowledgeHubMetadataEngine;
    private _entityDocuments;
    private _vectorIndexes;
    private _contentSources;
    private _contentTypes;
    private _contentSourceTypes;
    private _contentFileTypes;
    Config(forceRefresh?: boolean, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void>;
    /** All entity documents in the system (both active and inactive) */
    get EntityDocuments(): MJEntityDocumentEntity[];
    /** All vector indexes in the system */
    get VectorIndexes(): MJVectorIndexEntity[];
    /** All content sources */
    get ContentSources(): MJContentSourceEntity[];
    /** All content types */
    get ContentTypes(): MJContentTypeEntity[];
    /** All content source types (Web, RSS, Email, etc.) */
    get ContentSourceTypes(): MJContentSourceTypeEntity[];
    /** All content file types (.pdf, .html, etc.) */
    get ContentFileTypes(): MJContentFileTypeEntity[];
    /** Returns only entity documents with Status = 'Active' */
    GetActiveEntityDocuments(): MJEntityDocumentEntity[];
    /** Find an entity document by ID (case-insensitive UUID comparison) */
    GetEntityDocumentById(id: string): MJEntityDocumentEntity | undefined;
    /** Find all entity documents for a given entity name (case-insensitive) */
    GetEntityDocumentsForEntity(entityName: string): MJEntityDocumentEntity[];
    /** Find a vector index by ID (case-insensitive UUID comparison) */
    GetVectorIndexById(id: string): MJVectorIndexEntity | undefined;
    /**
     * Returns distinct entity names that have active entity documents (for dropdowns).
     * Sorted alphabetically.
     */
    GetEntitiesWithDocuments(): string[];
}
//# sourceMappingURL=knowledgeHubMetadata.d.ts.map