import { ColumnRefNode } from '../ast/column-ref.js'; import { FromNode } from '../ast/from.js'; import { JoinNode, type JoinType } from '../ast/join.js'; import { ExprNode } from '../ast/node.js'; type TableArg = string | string[] | FromNode; /** Options for a JOIN operation. */ interface JoinOptions { /** The join type (INNER, LEFT, RIGHT, FULL, SEMI, ANTI). */ type?: JoinType; /** * The join condition as a boolean expression. * If specified, the *using* option must not be specified. */ on?: ExprNode; /** * The join condition as an array of columns to match. * The column names must exist in both tables. * If specified, the *on* option must not be specified. */ using?: (string | ColumnRefNode)[]; } /** * Create a new cross (cartesian product) join. * @param left The left table to join. * @param right The right table to join. */ export declare function cross_join(left: TableArg, right: TableArg): JoinNode; /** * Create a new POSITIONAL join. * @param left The left table to join. * @param right The right table to join. */ export declare function positional_join(left: TableArg, right: TableArg): JoinNode; /** * Create a new join. * @param left The left table to join. * @param right The right table to join. * @param options The join options. */ export declare function join(left: TableArg, right: TableArg, options?: JoinOptions): JoinNode; /** * Create a new ASOF join. * @param left The left table to join. * @param right The right table to join. * @param options The join options. */ export declare function asof_join(left: TableArg, right: TableArg, options: JoinOptions): JoinNode; export {}; //# sourceMappingURL=join.d.ts.map