import { Plugin } from "@webiny/plugins";
import { ElasticsearchBoolQueryConfig } from "@webiny/api-elasticsearch/types";
import { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types";
export interface CmsEntryElasticsearchFullTextSearchPluginCbParams {
    model: CmsModel;
    query: ElasticsearchBoolQueryConfig;
    term: string;
    fields: CmsModelField[];
    createFieldPath: (field: CmsModelField) => string;
    prepareTerm: (term: string) => string;
}
export interface CmsEntryElasticsearchFullTextSearchPluginParams {
    models?: string[];
    apply: (params: CmsEntryElasticsearchFullTextSearchPluginCbParams) => void;
}
export declare class CmsEntryElasticsearchFullTextSearchPlugin extends Plugin {
    static readonly type: string;
    private readonly params;
    get models(): string[] | undefined;
    constructor(params: CmsEntryElasticsearchFullTextSearchPluginParams);
    apply(params: CmsEntryElasticsearchFullTextSearchPluginCbParams): void;
}
export declare const createCmsEntryElasticsearchFullTextSearchPlugin: (params: CmsEntryElasticsearchFullTextSearchPluginParams) => CmsEntryElasticsearchFullTextSearchPlugin;
