import { Filter, FilterMeta } from './meta_filter';
import { IIndexPattern, IFieldType } from '../../index_patterns';
export interface RangeFilterParams {
    from?: number | string;
    to?: number | string;
    gt?: number | string;
    lt?: number | string;
    gte?: number | string;
    lte?: number | string;
    format?: string;
}
export type RangeFilterMeta = FilterMeta & {
    params: RangeFilterParams;
    field?: any;
    formattedValue?: string;
};
export interface OpenSearchRangeFilter {
    range: {
        [key: string]: RangeFilterParams;
    };
}
export type RangeFilter = Filter & OpenSearchRangeFilter & {
    meta: RangeFilterMeta;
    script?: {
        script: {
            params: any;
            lang: string;
            source: any;
        };
    };
    match_all?: any;
};
export declare const isRangeFilter: (filter: any) => filter is RangeFilter;
export declare const isScriptedRangeFilter: (filter: any) => filter is RangeFilter;
export declare const getRangeFilterField: (filter: RangeFilter) => string;
export declare const buildRangeFilter: (field: IFieldType, params: RangeFilterParams, indexPattern: IIndexPattern, formattedValue?: string) => RangeFilter;
export declare const getRangeScript: (field: IFieldType, params: RangeFilterParams) => {
    script: {
        source: string;
        params: Partial<RangeFilterParams>;
        lang: string | undefined;
    };
};
