import { Filter, FilterMeta } from './meta_filter';
import { IIndexPattern, IFieldType } from '../../index_patterns';
export type PhraseFilterMeta = FilterMeta & {
    params?: {
        query: string;
    };
    field?: any;
    index?: any;
};
export type PhraseFilter = Filter & {
    meta: PhraseFilterMeta;
    script?: {
        script: {
            source?: any;
            lang?: string;
            params: any;
        };
    };
};
type PhraseFilterValue = string | number | boolean;
export declare const isPhraseFilter: (filter: any) => filter is PhraseFilter;
export declare const isScriptedPhraseFilter: (filter: any) => filter is PhraseFilter;
export declare const getPhraseFilterField: (filter: PhraseFilter) => string;
export declare const getPhraseFilterValue: (filter: PhraseFilter) => PhraseFilterValue;
export declare const buildPhraseFilter: (field: IFieldType, value: any, indexPattern: IIndexPattern) => PhraseFilter;
export declare const getPhraseScript: (field: IFieldType, value: string) => {
    script: {
        source: string;
        lang: string | undefined;
        params: {
            value: any;
        };
    };
};
export declare const getConvertedValueForField: (field: IFieldType, value: any) => any;
/**
 * Takes a scripted field and returns an inline script appropriate for use in a script query.
 * Handles lucene expression and Painless scripts. Other langs aren't guaranteed to generate valid
 * scripts.
 *
 * @param {object} scriptedField A Field object representing a scripted field
 * @returns {string} The inline script string
 */
export declare const buildInlineScriptForPhraseFilter: (scriptedField: any) => string;
export {};
