import { ISpecification } from '../specification/specification.interface'; import { ExpressionResult, SlimExpressionFunction } from 'slim-exp'; import { IDbContext, IUnitOfWork } from '../uow'; import { EntityBase, IDbSet, Includable, IQueryable, IQueryableSelectionResult } from './interfaces'; import { DeepPartial } from 'typeorm'; import { IInternalDbContext } from '../uow/_internal.interface'; export declare const UnderlyingType: unique symbol; export declare class DbSet> implements IDbSet { context: (IDbContext | IUnitOfWork) & IInternalDbContext; private _queryTypeToExecute; private _baseSpec; private _lastInclude; private _currentSkip; private _currentTake; private _ignoreFilters; private _underlyingType; private _onGoingPromise; constructor(context: IDbContext | IUnitOfWork); private get [UnderlyingType](); private set [UnderlyingType](value); add(...entities: E[]): Promise | void; update(...entities: E[]): Promise | void; unTrack(...entities: E[]): Promise | void; remove(...entities: E[]): Promise | void; find(id: any): Promise; exists(id: any): Promise; loadRelatedData(entity: T): Promise; firstOrDefault(): Promise; firstOrDefault(predicate: SlimExpressionFunction, context: C): Promise; firstOrDefault(predicate?: SlimExpressionFunction): Promise; first(): Promise; first(predicate: SlimExpressionFunction, context: C): Promise; first(func?: SlimExpressionFunction): Promise; include(navigationPropertyPath: SlimExpressionFunction>): IQueryable; thenInclude(navigationPropertyPath: SlimExpressionFunction>): IQueryable; where(predicate: SlimExpressionFunction, context?: C): IQueryable; take(count: number): IQueryable; skip(count: number): IQueryable; select(selector: SlimExpressionFunction): IQueryableSelectionResult; private _getIncludePaths; private _extractKeyFields; count(predicate?: SlimExpressionFunction): Promise; sum(selector: SlimExpressionFunction): Promise; average(selector: SlimExpressionFunction): Promise; max(selector: SlimExpressionFunction): Promise; min(selector: SlimExpressionFunction): Promise; orderBy(keySelector: SlimExpressionFunction): any; thenOrderBy(keySelector: SlimExpressionFunction): IQueryable; groupBy(keySelector: SlimExpressionFunction): IQueryable; thenGroupBy(keySelector: SlimExpressionFunction): IQueryable; orderByDescending(keySelector: SlimExpressionFunction): IQueryable; asSpecification(): ISpecification; ignoreQueryFilters(): IQueryable; distinct(): this; fromSpecification(spec: ISpecification): IQueryable; toList(): Promise; private execute; }