import type { ConditionalFilter, CrudOperators, LogicalFilter } from "@refinedev/core";
import type { NamingConvention } from "../types";
import type { BoolExp } from "./boolexp";
export type HasuraFilterCondition = "_and" | "_not" | "_or" | "_eq" | "_gt" | "_gte" | "_lt" | "_lte" | "_neq" | "_in" | "_nin" | "_like" | "_nlike" | "_ilike" | "_nilike" | "_is_null" | "_similar" | "_nsimilar" | "_regex" | "_iregex";
export type HasuraCrudOperators = CrudOperators | "not";
export type HasuraLogicalFilter = Omit<LogicalFilter, "operator"> & {
    operator: Exclude<HasuraCrudOperators, "or" | "and" | "not">;
};
export type HasuraConditionalFilter = Omit<ConditionalFilter, "operator" | "value"> & {
    operator: Extract<HasuraCrudOperators, "or" | "and" | "not">;
    value: HasuraCrudFilters;
};
export type HasuraCrudFilter = HasuraLogicalFilter | HasuraConditionalFilter;
export type HasuraCrudFilters = HasuraCrudFilter[];
export declare const handleFilterValue: (operator: HasuraCrudOperators, value: any) => any;
export declare const generateNestedFilterQuery: (filter: HasuraCrudFilter, namingConvention?: NamingConvention) => BoolExp;
export declare const generateFilters: (filters?: HasuraCrudFilters, namingConvention?: NamingConvention) => BoolExp | undefined;
export declare const mergeHasuraFilters: (filters?: BoolExp, metaFilters?: BoolExp) => BoolExp | undefined;
//# sourceMappingURL=generateFilters.d.ts.map