/** * Query Builder * * Builds database queries from the uniform ORM interface. * Translates query options to database-specific SQL or query objects. */ import { DatabaseType } from '../types/enums'; import { IQueryOptions, IBuiltQuery } from '../types/query.interface'; /** * Query builder for translating ORM queries to database-specific formats */ export declare class QueryBuilder { private databaseType; constructor(databaseType: DatabaseType); /** * Build a query from query options * @param options Query options * @returns Built query ready for execution */ buildQuery(options: IQueryOptions): IBuiltQuery; private buildPostgresQuery; private buildMySQLQuery; private buildMongoQuery; private buildDynamoQuery; private buildCassandraQuery; private buildWhereClause; private buildComparisonClause; private escapeIdentifier; /** * Format a PostgreSQL JSON path accessor * e.g., "metadata.role" becomes "metadata"->>'role' */ private formatPostgresJsonPath; /** * Format a MySQL JSON path accessor * e.g., "metadata.role" becomes JSON_UNQUOTE(JSON_EXTRACT(`metadata`, '$.role')) */ private formatMySQLJsonPath; private getPlaceholder; } /** * Export operators for external use * Uses lowercase naming convention to match Mongoose/MongoDB style */ export declare const Operators: { readonly $eq: "$eq"; readonly $ne: "$ne"; readonly $gt: "$gt"; readonly $gte: "$gte"; readonly $lt: "$lt"; readonly $lte: "$lte"; readonly $in: "$in"; readonly $nin: "$nin"; readonly $like: "$like"; readonly $ilike: "$ilike"; readonly $isNull: "$isNull"; readonly $isNotNull: "$isNotNull"; readonly $between: "$between"; readonly $regex: "$regex"; readonly $exists: "$exists"; readonly $contains: "$contains"; readonly $containedBy: "$containedBy"; readonly $overlaps: "$overlaps"; readonly $and: "$and"; readonly $or: "$or"; readonly $not: "$not"; readonly $nor: "$nor"; }; export type OperatorType = keyof typeof Operators;