import { AJSelector, AtomicSelector, CSSNode, CSSStyleSheet, JoinSelector, NoOp, OrSelector, StyleDeclaration, StyleRule } from "../css/ast"; import { AndExpression, EqualExpression, FieldSelector, FuncCallExpression, IsExpression, JoinClause, LikeExpression, OrExpression, SqssNode, SqssStyleSheet, StyleAssignment, UpdateStatement } from "../sqss/ast"; import { Agg, SQSSVisitor } from "../visitor"; declare type TPAgg = Agg; declare type JoinSelectorClass = { new (a: AJSelector, b: AJSelector): JoinSelector; }; export declare type TPContext = { joinGraph?: { left: string; right: string; selectorClass: JoinSelectorClass; }[]; }; export default class Transpiler implements SQSSVisitor { postVisitSqssStyleSheet(node: SqssStyleSheet, context: TPContext, data: TPAgg): CSSStyleSheet; postVisitUpdateStatement(node: UpdateStatement, context: TPContext, data: TPAgg): StyleRule; postVisitJoinClause(node: JoinClause, context: TPContext, data: TPAgg): NoOp; postVisitStyleAssignment(node: StyleAssignment, context: TPContext, data: TPAgg): StyleDeclaration; postVisitAndExpression(node: AndExpression, context: TPContext, data: TPAgg): AJSelector; private static getSelectorFromGroup; postVisitOrExpression(node: OrExpression, context: TPContext, data: TPAgg): OrSelector; postVisitEqualExpression(node: EqualExpression, context: TPContext, data: TPAgg): AtomicSelector | NoOp; private static getSelectorForEqualExpression; postVisitLikeExpression(node: LikeExpression, context: TPContext, data: TPAgg): AtomicSelector; postVisitIsExpression(node: IsExpression, context: TPContext, data: TPAgg): AtomicSelector; postVisitFieldSelector(node: FieldSelector, context: TPContext, data: TPAgg): NoOp; postVisitFuncCallExpression(node: FuncCallExpression, context: TPContext, data: TPAgg): CSSNode; private static buildJoinGraph; private static getTableName; private static verifyJoinGraph; private static getAttributeSelectorOperator; } export {};