import { FromNode } from './from-node.js'; import type { GroupByItemNode } from './group-by-item-node.js'; import { GroupByNode } from './group-by-node.js'; import { HavingNode } from './having-node.js'; import type { JoinNode } from './join-node.js'; import type { LimitNode } from './limit-node.js'; import type { OffsetNode } from './offset-node.js'; import type { OperationNode } from './operation-node.js'; import type { OrderByItemNode } from './order-by-item-node.js'; import type { OrderByNode } from './order-by-node.js'; import type { SelectionNode } from './selection-node.js'; import type { WhereNode } from './where-node.js'; import type { WithNode } from './with-node.js'; import type { SelectModifierNode } from './select-modifier-node.js'; import type { ExplainNode } from './explain-node.js'; import type { SetOperationNode } from './set-operation-node.js'; import type { FetchNode } from './fetch-node.js'; import type { TopNode } from './top-node.js'; export interface SelectQueryNode extends OperationNode { readonly kind: 'SelectQueryNode'; readonly from?: FromNode; readonly selections?: ReadonlyArray; readonly distinctOn?: ReadonlyArray; readonly joins?: ReadonlyArray; readonly groupBy?: GroupByNode; readonly orderBy?: OrderByNode; readonly where?: WhereNode; readonly frontModifiers?: ReadonlyArray; readonly endModifiers?: ReadonlyArray; readonly limit?: LimitNode; readonly offset?: OffsetNode; readonly with?: WithNode; readonly having?: HavingNode; readonly explain?: ExplainNode; readonly setOperations?: ReadonlyArray; readonly fetch?: FetchNode; readonly top?: TopNode; } type SelectQueryNodeFactory = Readonly<{ is(node: OperationNode): node is SelectQueryNode; create(withNode?: WithNode): Readonly; createFrom(fromItems: ReadonlyArray, withNode?: WithNode): Readonly; cloneWithSelections(select: SelectQueryNode, selections: ReadonlyArray): Readonly; cloneWithDistinctOn(select: SelectQueryNode, expressions: ReadonlyArray): Readonly; cloneWithFrontModifier(select: SelectQueryNode, modifier: SelectModifierNode): Readonly; cloneWithOrderByItems(node: SelectQueryNode, items: ReadonlyArray): Readonly; cloneWithGroupByItems(selectNode: SelectQueryNode, items: ReadonlyArray): Readonly; cloneWithLimit(selectNode: SelectQueryNode, limit: LimitNode): Readonly; cloneWithOffset(selectNode: SelectQueryNode, offset: OffsetNode): Readonly; cloneWithFetch(selectNode: SelectQueryNode, fetch: FetchNode): Readonly; cloneWithHaving(selectNode: SelectQueryNode, operation: OperationNode): Readonly; cloneWithSetOperations(selectNode: SelectQueryNode, setOperations: ReadonlyArray): Readonly; cloneWithoutSelections(select: SelectQueryNode): Readonly; cloneWithoutLimit(select: SelectQueryNode): Readonly; cloneWithoutOffset(select: SelectQueryNode): Readonly; cloneWithoutOrderBy(node: SelectQueryNode): Readonly; cloneWithoutGroupBy(select: SelectQueryNode): Readonly; }>; /** * @internal */ export declare const SelectQueryNode: SelectQueryNodeFactory; export {};