///
import { IDbSetFetchAdapter, IDbSetGeneralAdapter, IDbSetIndexAdapter, IDbSetModificationAdapter } from '../../types/adapter-types';
import { DeepPartial, EntitySelector } from '../../types/common-types';
import { IDbSetProps, IDbSetEnumerable, IDbSet } from '../../types/dbset-types';
import { IDbRecord, OmittedEntity, IDbRecordBase } from '../../types/entity-types';
/**
* Data Collection for set of documents with the same type. To be used inside of the DbContext
*/
export declare class DbSet, TExtraExclusions extends string = never> implements IDbSet {
protected readonly _fetchAdapter: IDbSetFetchAdapter;
protected readonly _generalAdapter: IDbSetGeneralAdapter;
protected readonly _indexAdapter: IDbSetIndexAdapter;
protected readonly _modificationAdapter: IDbSetModificationAdapter;
get types(): {
modify: import("../../types/common-types").DeepOmit;
result: TEntity;
documentType: TEntity["DocumentType"];
map: { [DocumentType_1 in TEntity["DocumentType"]]: TEntity; };
};
/**
* Constructor
* @param props Properties for the constructor
*/
constructor(props: IDbSetProps);
info(): import("../../types/dbset-types").IDbSetInfo;
tag(value: unknown): this;
instance(...entities: OmittedEntity[]): TEntity[];
add(...entities: OmittedEntity[]): Promise;
upsert(...entities: (OmittedEntity | Omit)[]): Promise;
remove(...ids: string[]): Promise;
remove(...entities: TEntity[]): Promise;
useIndex(name: string): IDbSetEnumerable;
empty(): Promise;
all(): Promise;
filter(selector: EntitySelector): Promise;
isMatch(first: TEntity, second: any): boolean;
match(...items: IDbRecordBase[]): TEntity[];
get(...ids: string[]): Promise;
find(selector: EntitySelector): Promise;
unlink(...entities: TEntity[]): void;
markDirty(...entities: TEntity[]): Promise;
link(...entities: TEntity[]): Promise;
first(): Promise;
query(request: DeepPartial>): Promise>;
private merge;
}