export interface QueryOptions { projection?: string | string[] | object; filter?: FilterExpression; sortBy?: SortByExpression; groupBy?: GroupByExpression; paging?: { page?: number; limit?: number; }; explain?: boolean; } export declare type IdExpression = string | number; export declare type AggregationFunctions = 'count' | 'sum' | 'avg' | 'max' | 'min'; export declare type FilterExpression = string | Record; export declare type ProjectionExpression = string | string[] | Record; export declare type SortByExpression = string | string[] | Record; export declare type GroupByExpression = string | string[] | Record; export declare type AggregationExpression = string | Record; export interface ScalarOptions { aggregation: AggregationExpression; filter?: FilterExpression; } export interface QueryResultSet { results: Record; } export interface QueryResult { data: R[]; paging?: { total?: number; limit?: number; page?: number; }; } export interface BpmsQueryableRepository { query(options: QueryOptions): Promise>; scalar(options: ScalarOptions): Promise; count(propertyName?: string, filter?: FilterExpression): Promise; max(propertyName: string, filter: FilterExpression): Promise; min(propertyName: string, filter: FilterExpression): Promise; sum(propertyName: string, filter: FilterExpression): Promise; avg(propertyName: string, filter: FilterExpression): Promise; } export interface BpmsRepository extends BpmsQueryableRepository { create(entity: E): Promise; update(id: IdExpression, entity: E, upsert?: boolean): Promise; updateAll(filter: FilterExpression, entity: E, upsert?: boolean): Promise; clear(): Promise; delete(id: IdExpression): Promise; delete(entity: E): Promise; deleteAll(filter?: FilterExpression): Promise; find(id: IdExpression): Promise; find(filter: FilterExpression): Promise; find(expression: IdExpression | FilterExpression): Promise; findAll(filter?: FilterExpression): Promise; } export interface BpmsMemoryRepositoryOptions { storageName: string; keyPropertyname?: string; paging?: { page?: number; limit?: number; }; properties?: Record; } export declare class BpmsBaseMemoryRepository implements BpmsRepository { private ds; private readonly defautOptions; private options; constructor(options: BpmsMemoryRepositoryOptions); clear(): Promise; create(entity: E): Promise; update(id: IdExpression, entity: E, upsert?: boolean): Promise; updateAll(filter: FilterExpression, entity: E, upsert?: boolean): Promise; delete(id: IdExpression): Promise; delete(entity: E): Promise; deleteAll(filter?: FilterExpression): Promise; find(id: IdExpression): Promise; find(filter: FilterExpression): Promise; findAll(filter?: FilterExpression): Promise; query(options: QueryOptions): Promise>; scalar(options: ScalarOptions): Promise; count(propertyName?: string, filter?: FilterExpression): Promise; max(propertyName: string, filter: FilterExpression): Promise; min(propertyName: string, filter: FilterExpression): Promise; sum(propertyName: string, filter: FilterExpression): Promise; avg(propertyName: string, filter: FilterExpression): Promise; private getAggregationResult; private getAggregationExpressionReducer; private getFilterExpression; private buildFilterExpression; private getSortExpression; private getGroupExpression; }