import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { MetricsService } from './metrics.service';
import { RagflowService } from './ragflow.service';
export interface SearchResultItem {
    id: string;
    type: 'document' | 'article' | 'folder';
    title: string;
    webUrl?: string;
    snippet: string;
    previewContent?: string;
    score: number;
    docType?: string;
    docAuthorityLevel?: string;
    lastModifiedAt?: Date;
    createdBy?: string;
    folderPath?: string;
}
export interface SearchResponse {
    items: SearchResultItem[];
    total: number;
    searchType: string;
    responseTimeMs: number;
}
export declare class RagflowSearchService {
    private readonly prisma;
    private readonly ragflowService;
    private readonly metricsService;
    private readonly logger;
    constructor(prisma: PrismaService, ragflowService: RagflowService, metricsService: MetricsService);
    search(userId: string, query: string, limit?: number): Promise<SearchResponse>;
    private searchFolders;
    private calculateFolderScore;
    private normalizeFolderSearchText;
    private extractSearchTokens;
    private countTokenMatches;
    private pickTopChunksByDocument;
    private clipSnippet;
    private groupChunksByDocument;
    private buildPreviewContent;
}
