import { Logger, SearchTypes } from "@medusajs/framework/types";
import { AbstractSearchProviderService } from "@medusajs/framework/utils";
import { IndexPlan } from "../utils";
type InjectedDependencies = {
    logger?: Logger;
};
type StoredIndex = {
    name: string;
    db: any;
    plan: IndexPlan;
    created_at: Date;
    updated_at: Date;
};
/**
 * Search provider backed by Orama, holding every index in-memory.
 *
 * Meant for tests, local development and small read-mostly datasets
 * The index will be empty upon restart, so rely on fallback if used in production.
 */
export declare class LocalSearchService extends AbstractSearchProviderService {
    static identifier: string;
    readonly migrate_on_startup = true;
    protected readonly logger_?: Logger;
    protected readonly indexes_: Map<string, StoredIndex>;
    constructor({ logger }?: InjectedDependencies);
    upsertIndex({ index, }: {
        index: SearchTypes.ResolvedSearchIndexDefinition;
    }): Promise<SearchTypes.SearchTask>;
    deleteIndex({ index, }: {
        index: string;
    }): Promise<SearchTypes.SearchTask>;
    listIndexes(): Promise<SearchTypes.SearchIndexInfo[]>;
    upsertDocuments({ index, documents, }: {
        index: string;
        documents: SearchTypes.SearchDocument[];
    }): Promise<SearchTypes.SearchTask>;
    deleteDocuments({ index, filters, }: SearchTypes.SearchDeleteDocumentsInput): Promise<SearchTypes.SearchTask>;
    protected resolveIdsByFilter(stored: StoredIndex, filters: SearchTypes.SearchFilters): Promise<string[]>;
    clearIndex({ index, }: {
        index: string;
    }): Promise<SearchTypes.SearchTask>;
    search(input: SearchTypes.ProviderSearchQuery): Promise<SearchTypes.SearchResult>;
    searchMany(inputs: SearchTypes.ProviderSearchQuery[]): Promise<SearchTypes.SearchResult[]>;
    protected resolveSortBy(input: SearchTypes.ProviderSearchQuery, plan: IndexPlan): {
        property: string;
        order: "ASC" | "DESC";
    } | undefined;
    protected retrieve(index: string): StoredIndex;
    protected task(index: string): SearchTypes.SearchTask;
}
export {};
//# sourceMappingURL=local-search.d.ts.map