import type { Logger, ProductDTO, SearchTypes } from '@medusajs/types';
import { AbstractSearchService } from '@medusajs/utils';
import type { EnqueuedTask, Index, IndexOptions, MeiliSearch, SearchParams, SearchResponse } from 'meilisearch' with { 'resolution-mode': 'import' };
import type { Options, SearchOption } from '../types';
import type { IMeilisearchService } from '../types';
type InjectedDependencies = {
    logger: Logger;
    meilisearch_client: MeiliSearch;
};
export default class MeiliSearchService<P extends ProductDTO = ProductDTO, I extends Required<IndexOptions> = Required<IndexOptions>> extends AbstractSearchService implements IMeilisearchService {
    static identifier: string;
    static DISPLAY_NAME: string;
    isDefault: boolean;
    readonly defaultIndex: string;
    protected readonly logger: Logger;
    protected readonly client: MeiliSearch;
    protected readonly settings: Options['settings'];
    constructor(deps: InjectedDependencies, options: Options);
    createIndex<O extends I = I>(indexName: string, options: O): Promise<EnqueuedTask>;
    getIndex<T extends P = P>(indexName: string): Promise<Index<T>>;
    addDocuments<T extends P = P, D extends T = T>(indexName: string, documents: D[], type: string): Promise<EnqueuedTask>;
    replaceDocuments<T extends P = P, D extends T = T>(indexName: string, documents: D[], type: string): Promise<EnqueuedTask>;
    deleteDocument(indexName: string, document_id: string | number): Promise<EnqueuedTask>;
    deleteAllDocuments(indexName: string): Promise<EnqueuedTask>;
    search<D extends P = P, S extends SearchParams = SearchParams>(indexName: string, query: string | null, options: SearchOption): Promise<SearchResponse<D, S>>;
    updateSettings(indexName: string, settings: SearchTypes.IndexSettings): Promise<EnqueuedTask>;
    protected upsertIndex(indexName: string, settings: SearchTypes.IndexSettings): Promise<void>;
    protected getTransformedDocuments<T extends P = P, R extends T = T>(type: string, documents: R[]): Promise<T[]>;
}
export {};
//# sourceMappingURL=service.d.ts.map