import { Replace } from "@glas/traverse"; export declare enum ExpressionKind { Unknown = 0, Boolean = 1, Integer = 2, Float = 3, String = 4 } export declare abstract class Expression { /** * This field can be used by client applications to store and later retrieve information. */ source: unknown; kind: ExpressionKind; constructor(source?: unknown); /** * Returns true if this expression has no sub expressions. */ get isTerminal(): boolean; /** * Returns true if this expressions child sub expressions are terminal. */ get isShallow(): boolean; abstract readonly sortOrder: number; protected abstract toStringInternal(): string; compareSortOrderSameType(b: any): number; compare(b: Expression): number; isLessThan(b: Expression): boolean | null; splitExpressions(operator?: string): Iterable; split(operator: string): Expression[]; filter(filterFunction: (e: Expression) => Expression | Replace): Expression; replace(find: Expression, replace: Expression): Expression; toString(): string; private static expressionToString; }