import { AbstractSqlDialect } from '../dialect/index.js'; import { type FieldKey, type FieldOptions, type JsonMergeOp, type NamingStrategy, type QueryComparisonOptions, type QueryConflictPaths, type QueryContext, type QueryOptions, type QueryWhereFieldOperatorMap, type Type } from '../type/index.js'; export declare class PostgresDialect extends AbstractSqlDialect { constructor(namingStrategy?: NamingStrategy); addValue(values: unknown[], value: unknown): string; placeholder(index: number): string; insert(ctx: QueryContext, entity: Type, payload: E | E[], opts?: QueryOptions): void; upsert(ctx: QueryContext, entity: Type, conflictPaths: QueryConflictPaths, payload: E | E[]): void; compare(ctx: QueryContext, entity: Type, key: string, val: unknown, opts?: QueryComparisonOptions): void; compareFieldOperator>(ctx: QueryContext, entity: Type, key: FieldKey, op: K, val: QueryWhereFieldOperatorMap[K], opts?: QueryOptions): void; /** * Build $elemMatch condition for PostgreSQL JSONB arrays. * - Simple objects (no operators): Use fast @> containment * - Objects with operators ($ilike, $regex, etc.): Use EXISTS subquery */ private buildElemMatchCondition; /** * Build a comparison condition for a JSON field with an operator. * Returns the SQL condition string. */ private buildJsonFieldOperator; protected getBaseJsonConfig(): { numericCast: (expr: string) => string; likeFn: string; ilikeExpr: (f: string, ph: string) => string; regexpOp: string; addValue: (c: QueryContext, v: unknown) => string; inExpr: (f: string, ph: string) => string; ninExpr: (f: string, ph: string) => string; neExpr: (f: string, ph: string) => string; }; protected formatPersistableValue(ctx: QueryContext, field: FieldOptions, value: unknown): void; protected formatJsonMerge(ctx: QueryContext, escapedCol: string, value: JsonMergeOp): void; escape(value: unknown): string; } //# sourceMappingURL=postgresDialect.d.ts.map