import { ConditionStep } from '../ConditionStep'; import { BooleanColumn } from '../../database'; import { BaseStep, Parenthesis } from '../BaseStep'; import { Condition } from '../../models'; import { OrderByArgsElement } from '../../orderBy'; import { All } from '../../singletoneConstants'; import { LogicalOperator } from '../../operators'; import { OffsetStep } from './OffsetStep'; import { LimitStep } from './LimitStep'; import { OrderByStep } from './OrderByStep'; declare abstract class HavingConditionStep extends ConditionStep { and(condition: Condition): HavingAndStep; and(left: Condition, operator: LogicalOperator, right: Condition): HavingAndStep; and(left: Condition, operator1: LogicalOperator, middle: Condition, operator2: LogicalOperator, right: Condition): HavingAndStep; or(condition: Condition): HavingOrStep; or(left: Condition, operator: LogicalOperator, right: Condition): HavingOrStep; or(left: Condition, operator1: LogicalOperator, middle: Condition, operator2: LogicalOperator, right: Condition): HavingOrStep; orderBy(...orderByItems: OrderByArgsElement[]): OrderByStep; limit(n: null | number | All): LimitStep; limit$(n: null | number): LimitStep; offset(n: number): OffsetStep; offset$(n: number): OffsetStep; } export declare class HavingStep extends HavingConditionStep { constructor(step: BaseStep, havingParts: (Condition | LogicalOperator | BooleanColumn | Parenthesis)[]); } export declare class HavingAndStep extends HavingConditionStep { constructor(step: BaseStep, havingParts: (Condition | LogicalOperator | BooleanColumn | Parenthesis)[]); } export declare class HavingOrStep extends HavingConditionStep { constructor(step: BaseStep, havingParts: (Condition | LogicalOperator | BooleanColumn | Parenthesis)[]); } export {};