import type { IContentTypeConfig } from './settings'; export interface IEmbeddingMetadata { generatedAt: string; textLength: number; model: string; dimensions: number; } export interface IEmbeddingResult { embedding: number[]; metadata: IEmbeddingMetadata; } export interface IContentEntity { id: number; documentId: string; locale?: string; [key: string]: unknown; } export interface IEmbeddingRecord { id: number; contentDocumentId: string; contentType: string; locale: string; embedding: number[]; embeddingMetadata: IEmbeddingMetadata; } export interface ISearchOptions { limit?: number; threshold?: number; locale?: string; domain?: string; populate?: string[]; depth?: number; } export declare const MAX_POPULATE_DEPTH = 10; declare const _default: ({ strapi }: { strapi: any; }) => { search(query: string, contentType: string, options?: ISearchOptions): Promise<{ results: any[]; metadata: { error: string; query?: undefined; contentType?: undefined; totalResults?: undefined; threshold?: undefined; }; } | { results: (IContentEntity & { similarityScore: number; })[]; metadata: { query: string; contentType: string; totalResults: number; threshold: number; error?: undefined; }; }>; generateEmbeddingForEntity(uid: string, entity: IContentEntity, fields: string[]): Promise; saveEmbedding(contentType: string, documentId: string, locale: string, embeddingResult: IEmbeddingResult): Promise; deleteEmbedding(contentType: string, documentId: string, locale?: string): Promise; deleteEmbeddingsByContentType(contentType: string): Promise; getStats(): Promise>; getContentTypes(): Promise>; buildPopulate: (populateFields: string[]) => Record | '*'; buildDeepPopulate: (uid: string, depth: number) => Record | '*'; resolvePopulate: (contentType: string, ctConfig: IContentTypeConfig, populate?: string[], depth?: number) => Record | '*'; }; export default _default;