import { DocumentsDeletionQuery, DocumentsIds, Meilisearch } from 'meilisearch';
import { SearchTypes } from '@medusajs/types';
import { SearchUtils } from '@medusajs/utils';
import { AddDocumentsOptions, MeilisearchPluginOptions } from '../types';
import { MeiliSearchEmbedder } from '../utils/embedder';
export declare class MeiliSearchService extends SearchUtils.AbstractSearchService {
    static identifier: string;
    isDefault: boolean;
    protected readonly config_: MeilisearchPluginOptions;
    protected readonly client_: Meilisearch;
    protected readonly embedder_: MeiliSearchEmbedder;
    constructor(cradle: unknown, options: MeilisearchPluginOptions);
    protected getLanguageIndexName(baseKey: string, language?: string): string;
    getFieldsForType(type: string): string[];
    getIndexesByType(type: string): string[];
    createIndex(indexName: string, options?: Record<string, unknown>): Promise<import("meilisearch").EnqueuedTask>;
    getIndex(indexName: string): import("meilisearch").Index<import("meilisearch").RecordAny>;
    addDocuments(indexName: string, documents: unknown[], _type: string, options?: AddDocumentsOptions): Promise<import("meilisearch").EnqueuedTask>;
    replaceDocuments(indexName: string, documents: unknown[], type: string, options?: AddDocumentsOptions): Promise<import("meilisearch").EnqueuedTask>;
    deleteDocument(indexName: string, documentId: string | number, language?: string): Promise<import("meilisearch").EnqueuedTask>;
    deleteDocuments(indexName: string, documents: DocumentsDeletionQuery | DocumentsIds, language?: string): Promise<import("meilisearch").EnqueuedTask>;
    deleteAllDocuments(indexName: string, language?: string): Promise<import("meilisearch").EnqueuedTask>;
    search(indexName: string, query: string, options: {
        language?: string;
        paginationOptions?: Record<string, unknown>;
        filter?: string;
        additionalOptions?: Record<string, unknown>;
        semanticSearch?: boolean;
        semanticRatio?: number;
        attributesToRetrieve?: string[];
    }): Promise<import("meilisearch").SearchResponse<import("meilisearch").RecordAny, Record<string, unknown>>>;
    updateSettings(indexName: string, settings: Pick<SearchTypes.IndexSettings, 'indexSettings' | 'primaryKey'>): Promise<void[] | undefined>;
    private updateIndexSettings;
    upsertIndex(indexName: string, settings: Pick<SearchTypes.IndexSettings, 'primaryKey'>): Promise<void>;
    private getTransformedDocuments;
    /**
     * Get embedder configuration status for admin panel
     * Delegates to the embedder service
     */
    getVectorSearchStatus(): {
        enabled: boolean;
        embeddingFields: never[];
        semanticRatio: number;
        provider?: undefined;
        model?: undefined;
        dimensions?: undefined;
    } | {
        enabled: boolean;
        provider: "ollama" | "openai";
        model: string;
        dimensions: number;
        embeddingFields: string[];
        semanticRatio: number;
    };
}
//# sourceMappingURL=meilisearch.d.ts.map