import { Condition, ConditionGroup, ExistsSubquery } from '../conditions'; import { Field } from '../fields'; export declare abstract class HasWhereConditions { protected _whereConditions?: ConditionGroup; setWhereConditions(conditions: ConditionGroup | undefined): R; getWhereConditions(): ConditionGroup; where(callback: (group: ConditionGroup) => void): R; where(condition: Condition): R; where(field: Field, value: any): R; where(field: Field, operator: string, value: any): R; whereIn(field: Field, values: Array): R; whereNotIn(field: Field, values: Array): R; whereBetween(field: Field, range: [any, any]): R; whereNotBetween(field: Field, range: [any, any]): R; whereNull(field: Field): R; whereNotNull(field: Field): R; /** Case-insensitive by default. Pass caseSensitive=true for exact-case matching. */ whereLike(field: Field, pattern: string, caseSensitive?: boolean): R; whereNotLike(field: Field, pattern: string, caseSensitive?: boolean): R; whereExists(subquery: ExistsSubquery): R; whereNotExists(subquery: ExistsSubquery): R; /** Membership test of `value` inside the array column `field`. */ whereArrayContains(field: Field, value: any): R; orWhere(callback: (group: ConditionGroup) => void): R; orWhere(condition: Condition): R; orWhere(field: Field, value: any): R; orWhere(field: Field, operator: string, value: any): R; orWhereIn(field: Field, values: Array): R; orWhereNotIn(field: Field, values: Array): R; orWhereBetween(field: Field, range: [any, any]): R; orWhereNotBetween(field: Field, range: [any, any]): R; orWhereNull(field: Field): R; orWhereNotNull(field: Field): R; /** Case-insensitive by default. Pass caseSensitive=true for exact-case matching. */ orWhereLike(field: Field, pattern: string, caseSensitive?: boolean): R; orWhereNotLike(field: Field, pattern: string, caseSensitive?: boolean): R; orWhereExists(subquery: ExistsSubquery): R; orWhereNotExists(subquery: ExistsSubquery): R; /** Membership test of `value` inside the array column `field` (OR-connected). */ orWhereArrayContains(field: Field, value: any): R; whereColumn(field: Field, column: Field): R; whereColumn(field: Field, operator: string, column: Field): R; orWhereColumn(field: Field, column: Field): R; orWhereColumn(field: Field, operator: string, column: Field): R; }