import { FromItem } from './SelectFromStep'; import { Artifacts, BaseStep } from '../BaseStep'; import { All } from '../../singletoneConstants'; import { LimitStep } from './LimitStep'; import { OffsetStep } from './OffsetStep'; import { Column } from '../../database'; import { ItemInfo } from '../../ItemInfo'; import { Condition, PrimitiveType } from '../../models'; import { LogicalOperator } from '../../operators'; import { OrderByArgsElement } from '../../orderBy'; import { ReturningItem } from '../../ReturningItemInfo'; import { SelectWhereStep } from './SelectConditionStep'; import { ReturningStep } from '../ReturningStep'; import { FullOuterJoinStep, InnerJoinStep, JoinStep, LeftJoinStep, RightJoinStep } from './BaseJoinStep'; import { OrderByStep } from './OrderByStep'; import { GroupByStep } from './GroupByStep'; export declare abstract class AfterFromStep extends BaseStep { crossJoin(fromItem: FromItem): CrossJoinStep; leftJoin(fromItem: FromItem): LeftJoinStep; rightJoin(fromItem: FromItem): RightJoinStep; fullOuterJoin(fromItem: FromItem): FullOuterJoinStep; innerJoin(fromItem: FromItem): InnerJoinStep; join(fromItem: FromItem): JoinStep; where(condition: Condition): SelectWhereStep; where(left: Condition, operator: LogicalOperator, right: Condition): SelectWhereStep; where(left: Condition, operator1: LogicalOperator, middle: Condition, operator2: LogicalOperator, right: Condition): SelectWhereStep; groupBy(...groupByItems: Column[]): GroupByStep; limit(n: number | All | null): LimitStep; limit$(n: number | null): LimitStep; offset(n: number): OffsetStep; offset$(n: number): OffsetStep; orderBy(...orderByItems: OrderByArgsElement[]): OrderByStep; returning(...items: (ItemInfo | ReturningItem | PrimitiveType)[]): ReturningStep; } export declare class CrossJoinStep extends AfterFromStep { private readonly fromItem; constructor(prevStep: BaseStep, fromItem: FromItem); getStepStatement(artifacts?: Artifacts): string; getStepArtifacts(): Artifacts; } export declare class OnStep extends AfterFromStep { protected readonly condition: Condition; constructor(prevStep: BaseStep, condition: Condition); getStepStatement(artifacts?: Artifacts): string; getStepArtifacts(): Artifacts; or(condition: Condition): OnOrStep; and(condition: Condition): OnAndStep; } export declare class OnAndStep extends OnStep { getStepStatement(artifacts?: Artifacts): string; } export declare class OnOrStep extends OnStep { getStepStatement(artifacts?: Artifacts): string; }