import { AxExpDateTimeRangeValue } from './ax-exp-date-time-range-value';
import { Attribute } from '../data-model/attribute';
import { AxOperator } from '../filters/ax-operator';
import { AxExpDateRangeValue } from './ax-exp-date-range-value';
import { AxExpDateTimeValue } from './ax-exp-date-time';
import { AxExpDateValue } from './ax-exp-date-value';
import { AxExpressionValue } from './ax-expression-value';
export declare class AxExpression {
    field: Attribute;
    comparisonOperator: AxOperator;
    valueType: number;
    value: AxExpressionValue;
    constructor(axExpression?: AxExpression);
    /**
     * Assign existing value
     *
     * @param axExpression
     */
    static createAxExpression(axExpression?: AxExpression): AxExpression;
    /**
     * Assign by default value
     */
    newAxExpression(): void;
    /**
     * Assign existing value
     *
     * @param axExpression
     */
    axExpression(axExpression?: AxExpression): void;
    /**
     *  assign expression value object and value
     *
     * @param subType
     * @param value
     * @returns
     */
    getExpressionValueObject(subType: string, value?: AxExpressionValue, comparisonOperator?: AxOperator): AxExpressionValue;
    /**
     *  Check valid expression value or object
     *
     * @param subType
     * @param value
     * @returns
     */
    isValueValid(subType: string, value?: AxExpressionValue): boolean;
    /**
     *to set current date values for default filter when filter type is date
     *
     * @param operatorIndex
     * @returns
     */
    getDateValue(operatorIndex: number): AxExpDateRangeValue | AxExpDateValue;
    /**
     * to set current date-time values for default filter when filter type is date-time / timestamp
     *
     * @param operatorIndex
     * @returns
     */
    getDateTimeValue(operatorIndex: number): AxExpDateTimeRangeValue | AxExpDateTimeValue;
    /**
     * to check valid expression .
     * valid expression are searchable.
     * @returns
     */
    searchable(): boolean;
}
