import { FilterGroup } from './FilterGroup'; import { IPipeble } from '../core/IPipeble'; import { AbstractODataFilter } from './AbstractODataFilter'; import { Rule } from './Rule'; import { IQueryProvider } from '../core/IQueryProvider'; export declare enum LogicalOperator { AND = "and", OR = "or", NOT = "not" } export interface ILogicalGroup { operator: LogicalOperator; rules: Array; } export interface IODataFilterChild { child: ODataFilter; operator: LogicalOperator; } export declare class ODataFilter extends AbstractODataFilter implements IPipeble { private operator; protected provider: IQueryProvider; private children; constructor(operator?: LogicalOperator); static merge(tree: ODataFilter, subtree: ODataFilter): ODataFilter; pipe(...args: Array): this; and(fn: (f: ODataFilter) => ODataFilter, continueWith?: LogicalOperator): this; or(fn: (f: ODataFilter) => ODataFilter, continueWith?: LogicalOperator): this; not(fn: (f: ODataFilter) => ODataFilter, continueWith?: LogicalOperator): this; toExpression(): { children: Array; group: FilterGroup; operator: LogicalOperator; }; toString(options?: { encode: boolean; }): string; private addFilterNode; }