import { AndExpression, EqualExpression, FieldSelector, FuncCallExpression, IsExpression, JoinClause, LikeExpression, OrExpression, SqssNode, SqssStyleSheet, StyleAssignment, UpdateStatement } from "../sqss/ast"; import { Agg, SQSSVisitor } from "../visitor"; declare type ReplaceNode = SqssNode | null; declare type FCAgg = Agg; export default class FlattenExpression implements SQSSVisitor { postVisitSqssStyleSheet(node: SqssStyleSheet, context: void, data: FCAgg): null; postVisitUpdateStatement(node: UpdateStatement, context: void, data: FCAgg): null; postVisitJoinClause(node: JoinClause, context: void, data: FCAgg): null; postVisitStyleAssignment(node: StyleAssignment, context: void, data: FCAgg): null; postVisitAndExpression(node: AndExpression, context: void, data: FCAgg): ReplaceNode; postVisitOrExpression(node: OrExpression, context: void, data: FCAgg): ReplaceNode; private replaceExpression; private flatten; private distribute; postVisitEqualExpression(node: EqualExpression, context: void, data: FCAgg): null; postVisitLikeExpression(node: LikeExpression, context: void, data: FCAgg): null; postVisitIsExpression(node: IsExpression, context: void, data: FCAgg): null; postVisitFuncCallExpression(node: FuncCallExpression, context: void, data: FCAgg): null; postVisitFieldSelector(node: FieldSelector, context: void, data: FCAgg): null; } export {};