import { ItemInfo } from '../../ItemInfo'; import { ReturningItem } from '../../ReturningItemInfo'; import { ReturningStep } from '../ReturningStep'; import { Column } from '../../database'; import { Condition, PrimitiveType } from '../../models'; import { LogicalOperator } from '../../operators'; import { OrderByArgsElement } from '../../orderBy'; import { HavingStep } from './HavingStep'; import { OrderByStep } from './OrderByStep'; import { Artifacts, BaseStep } from '../BaseStep'; export declare class GroupByStep extends BaseStep { protected readonly groupByItems: ReadonlyArray; constructor(prevStep: BaseStep, groupByItems: ReadonlyArray); getStepArtifacts(): Artifacts; getStepStatement(artifacts?: Artifacts): string; having(condition: Condition): HavingStep; having(left: Condition, operator: LogicalOperator, right: Condition): HavingStep; having(left: Condition, operator1: LogicalOperator, middle: Condition, operator2: LogicalOperator, right: Condition): HavingStep; orderBy(...orderByItems: OrderByArgsElement[]): OrderByStep; returning(...items: (ItemInfo | ReturningItem | PrimitiveType)[]): ReturningStep; }