import { AttributeInfo } from '../../datatypes';
import { Expression, RefExpression } from '../../expressions';
import { CustomDruidTransforms } from './druidTypes';
export interface DruidFilterAndIntervals {
    filter: Druid.Filter;
    intervals: Druid.Intervals;
}
export interface DruidFilterBuilderOptions {
    rawAttributes: AttributeInfo[];
    timeAttribute: string;
    allowEternity: boolean;
    customTransforms: CustomDruidTransforms;
}
export declare class DruidFilterBuilder {
    static TIME_ATTRIBUTE: string;
    static TRUE_INTERVAL: string;
    rawAttributes: AttributeInfo[];
    timeAttribute: string;
    allowEternity: boolean;
    customTransforms: CustomDruidTransforms;
    constructor(options: DruidFilterBuilderOptions);
    filterToDruid(filter: Expression): DruidFilterAndIntervals;
    timeFilterToIntervals(filter: Expression): Druid.Intervals;
    timelessFilterToFilter(filter: Expression): Druid.Filter;
    private valueToIntervals;
    private makeSelectorFilter;
    private makeInFilter;
    private makeBoundFilter;
    private makeIntervalFilter;
    private makeRegexFilter;
    private makeContainsFilter;
    private makeExpressionFilter;
    private getSingleReferenceAttributeInfo;
    private getDimensionNameForAttributeInfo;
    getAttributesInfo(attributeName: string): AttributeInfo;
    isTimeRef(ex: Expression): ex is RefExpression;
}
//# sourceMappingURL=druidFilterBuilder.d.ts.map