interface MagmaDocument {
    content: string;
    metadata: {
        source: string;
        page: number;
        category: string;
        chapter?: string;
        section?: string;
        hasCode?: boolean;
        hasExample?: boolean;
        wordCount?: number;
    };
}
interface SearchResult extends MagmaDocument {
    score: number;
    vectorSimilarity?: number;
    bm25Score?: number;
    rank?: number;
}
export declare class AdvancedMagmaKnowledgeBase {
    private supabase;
    private embeddings;
    private textSplitter;
    private isInitialized;
    private queryCache;
    private readonly CACHE_TTL;
    constructor();
    initialize(): Promise<void>;
    indexPDF(pdfPath: string): Promise<void>;
    private cleanText;
    private enhanceMetadata;
    private categorizeContent;
    private extractAndIndexFunctions;
    private extractFunctionDefinitions;
    hybridSearch(query: string, limit?: number, category?: string, vectorWeight?: number, // BM25를 더 중요하게 (코딩 이론에서는 키워드가 중요)
    bm25Weight?: number): Promise<SearchResult[]>;
    searchFunctions(functionQuery: string, limit?: number): Promise<any[]>;
    enhancedSearch(query: string, limit?: number, category?: string): Promise<SearchResult[]>;
    private expandQuery;
    private rerankResults;
    search(query: string, limit?: number, category?: string): Promise<SearchResult[]>;
    getExamples(topic: string, complexity?: string): Promise<any[]>;
    explainCode(code: string, context?: string): Promise<string>;
    private extractExampleFromContent;
    private extractFunctions;
    private buildCodeExplanation;
    private analyzeLine;
    private extractTitle;
    private cleanMagmaCode;
    private extractExplanation;
    private assessComplexity;
}
export {};
//# sourceMappingURL=advanced-knowledge-base.d.ts.map