import { MouseEvent, ReactNode } from "react";
import { DatePickerDate } from "../DatePicker";
import { IOption } from "../Menu";
export declare enum ComparisonOperator {
    /** `==` */
    Equals = "Equals",
    /** `!=` */
    NotEquals = "NotEquals",
    /** `>` */
    GreaterThan = "GreaterThan",
    /** `<` */
    LessThan = "LessThan",
    /** `>=` */
    GreaterOrEquals = "GreaterOrEquals",
    /** `<=` */
    LessOrEquals = "LessOrEquals",
    Filled = "Filled",
    Empty = "Empty",
    /** `==` */
    Contains = "Contains",
    /** `!=` */
    NotContains = "NotContains",
    StartsWith = "StartsWith",
    NotStartsWith = "NotStartsWith",
    EndsWith = "EndsWith",
    NotEndsWith = "NotEndsWith",
    Between = "Between",
    Outside = "Outside"
}
export interface FilterValues {
    filter1: [number, number] | number | null;
    filter2: string;
    filter3: [DatePickerDate, DatePickerDate] | DatePickerDate;
    filter4: [DatePickerDate, DatePickerDate] | DatePickerDate;
}
export interface FilterTypes {
    filter1: FilterTypeOption | null;
    filter2: FilterTypeOption | null;
    filter3: FilterTypeOption | null;
    filter4: FilterTypeOption | null;
}
export declare type FilterInputType = "number" | "double" | "int64" | "int32" | "string" | "date" | "datetime";
export declare type FilterTypeOption = IOption & {
    inactive?: boolean;
    autocomplete?: boolean;
    range?: boolean;
    checkboxes?: boolean;
};
export declare type FilterValue = [DatePickerDate, DatePickerDate] | Date | [number | undefined, number | undefined] | number | string | string[] | null | undefined;
export interface FilterInputProps {
    label?: string;
    value?: FilterValue;
    type: FilterInputType;
    options: FilterTypeOption[];
    defaultOption?: string;
    selectedOption?: FilterTypeOption | null;
    onShown?: VoidFunction;
    onChange?: (filterType: FilterTypeOption | null, value: FilterValue) => void;
    asyncCallback?: (value: string) => Promise<IOption[]>;
    zIndex?: number;
    menuTitle?: string;
    clearTitle?: string;
    min?: number | Date;
    max?: number | Date;
    disabled?: boolean;
    prefix?: ReactNode;
    fromTable?: boolean;
    onInputClick?: (e: MouseEvent<HTMLInputElement>, option?: FilterTypeOption | null) => void;
    active?: boolean;
    checkboxSelectedText?: string;
    menuMaxHeight?: string;
}
