import { Alias, BinaryExpr, CompoundSelectStmt, Expr, ListExpr, Identifier, JoinExpr, Keyword, Node, ParenExpr, PostfixOpExpr, PrefixOpExpr, SubSelect, Whitespace, MemberExpr, PivotExpr, UnpivotExpr, TablesampleExpr, FuncCall, ForSystemTimeAsOfExpr, ArrayDataType, DataType } from "../cst/Node"; export declare function createStringConcatExprChain(head: BinaryExpr["left"], tail: [Whitespace[], BinaryExpr["right"]][]): Expr; export declare function createBinaryExprChain(head: BinaryExpr["left"], tail: [ Whitespace[], BinaryExpr["operator"], Whitespace[], BinaryExpr["right"] ][]): Expr; export declare function createBinaryExpr(left: BinaryExpr["left"], c1: Whitespace[], op: BinaryExpr["operator"], c2: Whitespace[], right: BinaryExpr["right"]): BinaryExpr; export declare function createCastOperatorExprChain(head: Expr, tail: [Whitespace[], "::", Whitespace[], DataType][]): Expr; export declare function createCompoundSelectStmtChain(head: CompoundSelectStmt["left"], tail: [ Whitespace[], CompoundSelectStmt["operator"], Whitespace[], CompoundSelectStmt["right"] ][]): SubSelect; export declare function createCompoundSelectStmt(left: CompoundSelectStmt["left"], c1: Whitespace[], op: CompoundSelectStmt["operator"], c2: Whitespace[], right: CompoundSelectStmt["right"]): CompoundSelectStmt; export declare function createJoinExprChain(head: JoinExpr["left"], tail: ((left: JoinExpr["left"]) => JoinExpr | PivotExpr | UnpivotExpr | TablesampleExpr | ForSystemTimeAsOfExpr)[]): JoinExpr | PivotExpr | UnpivotExpr | TablesampleExpr | ForSystemTimeAsOfExpr | import("../cst/Select").TableFactor; interface FuncCallRight { type: "func_call_right"; args: FuncCall["args"]; filter: FuncCall["filter"]; over: FuncCall["over"]; } type FuncCallTailPart = [Whitespace[], FuncCallRight]; type ArrayMemberExprTailPart = [Whitespace[], MemberExpr["property"]]; type ObjectMemberExprTailPart = [ Whitespace[], ".", Whitespace[], MemberExpr["property"] ]; type MemberExprTailPart = ArrayMemberExprTailPart | ObjectMemberExprTailPart; export declare function createMemberExprChain(head: MemberExpr["object"], tail: (MemberExprTailPart | FuncCallTailPart)[]): Expr; export declare function createFuncCall(name: FuncCall["name"], [c1, fn]: FuncCallTailPart): FuncCall; export declare function createPrefixOpExpr(op: PrefixOpExpr["operator"], expr: Expr): PrefixOpExpr; export declare function createPostfixOpExpr(op: PostfixOpExpr["operator"], expr: Expr): PostfixOpExpr; export declare const createKeyword: (text: string) => Keyword; export declare const createIdentifier: (text: string, name: string) => Identifier; interface PartialAlias { asKw?: Keyword<"AS">; alias: Identifier; columnAliases?: ParenExpr>; } export declare const createAlias: (expr: T, _alias: [Whitespace[], PartialAlias] | null) => Alias | T; export declare const createParenExpr: (c1: Whitespace[], expr: Expr, c2: Whitespace[]) => ParenExpr; export declare const createListExpr: (head: T, tail: [Whitespace[], string, Whitespace[], T][]) => ListExpr; export declare function createArrayDataTypeChain(head: ArrayDataType["dataType"], tail: [Whitespace[], ArrayDataType["bounds"]][]): ArrayDataType["dataType"]; export {};