import { IRepository, Predicate, Selector } from '../../core/index'; import { IQueryExpression } from '../IQueryExression'; import { IDbCommandExecutePlan } from './IDbCommandExecutePlan'; import { IDbQueryPagedResult } from './IDbQueryPagedResult'; export interface DbQueryOptions { query: string | Predicate | IQueryExpression; pageSize?: number; pageIndex?: number; selectBy?: string[] | Array>; groupBy?: string[] | Array>; sortBy: { [fieldname: string]: 'asc' | 'desc'; }; } export interface IDbRepository extends IRepository { getSource(dbName?: string): Promise; getDb(dbName?: string): Promise; query(options: DbQueryOptions): Promise>; }