import { ExistsExpression , FilterOperator , FilterValueExpressionOrList , HavingGrouper , } from '../parser/filter-parser.js' ; import { ReferenceExpression } from '../parser/reference-parser.js' ; import { AnyRawBuilder } from '../util/type-utils.js' ; export interface HavingInterface < DB , TB extends keyof DB > { /**
     * Just like  WhereInterface . where but adds a `having` statement
     * instead of a `where` statement.
      having < RE extends ReferenceExpression < DB , TB > > ( lhs , op , rhs ) : HavingInterface < DB , TB > ; having ( grouper ) : HavingInterface < DB , TB > ; having ( raw ) : HavingInterface < DB , TB > ; /**
     * Just like  WhereInterface . whereRef but adds a `having` statement
     * instead of a `where` statement.
      havingRef ( lhs , op , rhs ) : HavingInterface < DB , TB > ; /**
     * Just like  WhereInterface . orWhere but adds a `having` statement
     * instead of a `where` statement.
      orHaving < RE extends ReferenceExpression < DB , TB > > ( lhs , op , rhs ) : HavingInterface < DB , TB > ; orHaving ( grouper ) : HavingInterface < DB , TB > ; orHaving ( raw ) : HavingInterface < DB , TB > ; /**
     * Just like  WhereInterface . orWhereRef but adds a `having` statement
     * instead of a `where` statement.
      orHavingRef ( lhs , op , rhs ) : HavingInterface < DB , TB > ; /**
     * Just like  WhereInterface . whereExists but adds a `having` statement
     * instead of a `where` statement.
      havingExists ( arg ) : HavingInterface < DB , TB > ; /**
     * Just like  WhereInterface . whereNotExists but adds a `having` statement
     * instead of a `where` statement.
      havingNotExist ( arg ) : HavingInterface < DB , TB > ; /**
     * Just like  WhereInterface . orWhereExists but adds a `having` statement
     * instead of a `where` statement.
      orHavingExists ( arg ) : HavingInterface < DB , TB > ; /**
     * Just like  WhereInterface . orWhereNotExists but adds a `having` statement
     * instead of a `where` statement.
      orHavingNotExists ( arg ) : HavingInterface < DB , TB > ; }