import { ExpressionResult, SlimExpressionFunction } from 'slim-exp'; import { ISpecification, FieldsSelector, CriteriaExpression, FunctionQueryType } from './specification.interface'; export declare class BaseSpecification implements ISpecification { private _includes; private _distinct; private _chainedIncludes; private _criterias; private _orderBy; private _groupBy; private _orderByDescending; private _thenOrderBy; private _thenGroupBy; private _take; private _skip; private _isPagingEnabled; private _selector; private _func; private _initializeThenInclude; getIncludePaths(): string[]; getIncludes(): SlimExpressionFunction[]; getDistinct(): boolean; getFunction(): { type: FunctionQueryType; func: SlimExpressionFunction; }; getChainedIncludes(): { initial: SlimExpressionFunction; chain: SlimExpressionFunction[]; }[]; getCriterias(): CriteriaExpression[]; getOrderBy(): SlimExpressionFunction; getGroupBy(): SlimExpressionFunction; getOrderByDescending(): SlimExpressionFunction; getThenOrderBy(): SlimExpressionFunction[]; getThenGroupBy(): SlimExpressionFunction[]; getTake(): number; getSkip(): number; getIsPagingEnabled(): boolean; getSelector(): FieldsSelector; applyPaging(skip: number, take: number): void; addInclude(include: SlimExpressionFunction): void; applyDistinct(distinct?: boolean): void; addChainedInclude(include: SlimExpressionFunction, include2: SlimExpressionFunction): any; addChainedInclude(include: SlimExpressionFunction, include2: SlimExpressionFunction, include3: SlimExpressionFunction): any; addChainedInclude(include: SlimExpressionFunction, include2: SlimExpressionFunction, include3: SlimExpressionFunction, include4: SlimExpressionFunction

): any; addCriteria(func: SlimExpressionFunction, context?: C | null): void; applySelector(selector: FieldsSelector): void; applyOrderBy(orderBy: SlimExpressionFunction): void; applyGroupBy(groupBy: SlimExpressionFunction): void; applyFunction(type: FunctionQueryType, func: SlimExpressionFunction): void; applyThenOrderBy(thenOrderBy: SlimExpressionFunction): void; applyThenGroupBy(thenBy: SlimExpressionFunction): void; applyOrderByDescending(orderBy: SlimExpressionFunction): void; extend(spec: ISpecification): void; clearSpecs(): void; }