import { IGroupBy, IIndexOnParams, IIndexWithParams, IndexType, ISelectType, LetExprType, LogicalWhereExpr, SortType } from '../interface/query.types'; /** * Build a SELECT N1QL query from user-specified parameters. * {@link https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/select-syntax.html} * @param collection Collection name * @param select SELECT Clause * @param letExpr LET Clause * @param where WHERE Clause * @param orderBy ORDER BY Clause * @param limit LIMIT Clause * @param offset OFFSET Clause * @param useExpr USE Clause * @param groupByExpr GROUP BY Clause * @param lettingExpr LETTING Clause * @param havingExpr HAVING Clause * @param plainJoinExpr PLAIN JOIN string definition * @param ignoreCase boolean to ignore case * * @return N1QL SELECT Query * */ export declare const selectBuilder: (collection: string, select: ISelectType[] | string, letExpr?: LetExprType, where?: LogicalWhereExpr, orderBy?: Record, limit?: number, offset?: number, useExpr?: string[], groupByExpr?: IGroupBy[], lettingExpr?: LetExprType, havingExpr?: LogicalWhereExpr, plainJoinExpr?: string, ignoreCase?: boolean) => string; /** * Create N1QL queries from SELECT array params. * @param clause SELECT Clause * * @return N1QL SELECT Query * */ export declare const buildSelectArrayExpr: (clause: ISelectType[]) => string; /** * Recursive function to create N1QL queries. * @param n1ql N1QL Query String * @param clause SELECT Clause * * @return N1QL SELECT Query * */ export declare const buildSelectExpr: (n1ql: string, clause: ISelectType) => string; /** * Create WHERE N1QL Expressions. * {@link https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/where.html} * @param clause WHERE Clause * @param ignoreCase Apply ignore case * @return N1QL WHERE Expression * */ export declare const buildWhereExpr: (expr?: LogicalWhereExpr, clause?: string, ignoreCase?: boolean) => string; export declare const verifyWhereObjectKey: (clause: LogicalWhereExpr) => boolean; /** * Recursive function to create WHERE N1QL expressions. * @param n1ql N1QL Query String * @param clause WHERE Clause param * @param ignoreCase Apply ignoreCase * * @return N1QL WHERE expression * */ export declare const buildWhereClauseExpr: (n1ql: string, clause: LogicalWhereExpr, ignoreCase?: boolean) => string; /** * Build a INDEX N1QL query from user-specified parameters. * {@link https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/createindex.html} * @param collection Collection name * @param type INDEX clause types ('CREATE' | 'BUILD' | 'DROP' | 'CREATE PRIMARY') * @param on ON Clause * @param where WHERE Clause * @param usingGSI use a Global Secondary Index (GSI) * @param withExpr WITH Clause * * @return N1QL INDEX Query * */ export declare const buildIndexExpr: (collection: string, type: IndexType, name: string, on?: IIndexOnParams[], where?: LogicalWhereExpr, usingGSI?: boolean, withExpr?: IIndexWithParams) => string;