export declare const FilterType: {
    readonly number: "number";
    readonly string: "string";
    readonly date: "date";
    readonly select: "select";
    readonly multiselect: "multiselect";
};
export declare const EmptyFilterValue = "--empty--";
export type FilterValueType = 'string' | 'number' | 'boolean';
export interface FilterValue {
    value?: FilterValueType;
    date?: Date;
}
export type FilterOperation = {
    value: string;
    label: string;
};
export type StringFilterOperatorDataTableFilterType = 'eq' | 'neq' | 'ilike';
export type NumberFilterOperatorType = 'eq' | 'neq' | 'lt' | 'lte' | 'gt' | 'gte';
export type StringFilterOperatorType = 'eq' | 'neq' | 'contains' | 'starts_with' | 'ends_with';
export type DateFilterOperatorType = 'eq' | 'neq' | 'lt' | 'lte' | 'gt' | 'gte';
export type SelectFilterOperatorType = 'eq' | 'neq';
export type MultiSelectFilterOperatorType = 'in' | 'notin';
export type FilterOperatorTypes = NumberFilterOperatorType | StringFilterOperatorType | DateFilterOperatorType | SelectFilterOperatorType | MultiSelectFilterOperatorType | 'empty';
export type DataTableFilterOperatorTypes = NumberFilterOperatorType | StringFilterOperatorDataTableFilterType | DateFilterOperatorType | SelectFilterOperatorType | MultiSelectFilterOperatorType | 'empty';
export type FilterOperator<T> = {
    /**
     * @description Value of the filter operator
     */
    value: T;
    /**
     * @description Label to be shown in the filter chip operation
     */
    label: string;
    /**
     * @description Used to show alternate operation label when single value is selected in multiselect column
     */
    alternateLabel?: string;
};
export type FilterOperatorsMap = {
    number: FilterOperator<NumberFilterOperatorType>[];
    string: FilterOperator<StringFilterOperatorType>[];
    date: FilterOperator<DateFilterOperatorType>[];
    select: FilterOperator<SelectFilterOperatorType>[];
    multiselect: FilterOperator<MultiSelectFilterOperatorType>[];
};
export type FilterTypes = keyof typeof FilterType;
export declare const filterOperators: FilterOperatorsMap;
export type Filter = {
    type: FilterTypes;
    filterOperation: string;
    value: string;
};
export interface FilterSelectOption {
    value: FilterValueType;
    label: string;
}
//# sourceMappingURL=filters.d.ts.map