import { IObjectType, ValueType, DeleteMode, FlatObjectLike, ObjectLike } from "../Common/Type"; import { DbContext } from "./DBContext"; import { Queryable } from "../Queryable/Queryable"; import { EntityMetaData } from "../MetaData/EntityMetaData"; import { EntityEntry } from "./EntityEntry"; import { IColumnMetaData } from "../MetaData/Interface/IColumnMetaData"; import { IQueryExpression } from "../Queryable/QueryExpression/IQueryExpression"; import { IQueryOption } from "../Query/IQueryOption"; import { DeferredQuery } from "../Query/DeferredQuery"; import { IQueryVisitor } from "../Query/IQueryVisitor"; import { IEnumerable } from "../Enumerable/IEnumerable"; export declare class DbSet extends Queryable { readonly type: IObjectType; readonly dbContext: DbContext; readonly queryOption: IQueryOption; readonly metaData: EntityMetaData; readonly primaryKeys: IColumnMetaData[]; private readonly _dbContext; private _metaData; constructor(type: IObjectType, dbContext: DbContext); buildQuery(visitor: IQueryVisitor): IQueryExpression; hashCode(): number; readonly local: IEnumerable; protected dictionary: Map>; find(id: ValueType | FlatObjectLike, forceReload?: boolean): Promise; findLocal(id: ValueType | FlatObjectLike): T; entry(entity: T | FlatObjectLike): EntityEntry; new(primaryValue: ValueType | ObjectLike): T; clear(): void; getKey(id: ValueType | ObjectLike): string; updateEntryKey(entry: EntityEntry): void; insert(...items: Array>): Promise; deferredInsert(...items: Array>): DeferredQuery; deferredUpdate(setter: { [key in keyof T]?: T[key] | ((item: T) => ValueType); }): DeferredQuery; deferredDelete(mode: DeleteMode): DeferredQuery; deferredDelete(key: ObjectLike, mode?: DeleteMode): DeferredQuery; deferredDelete(predicate?: (item: T) => boolean, mode?: DeleteMode): DeferredQuery; upsert(item: ObjectLike): Promise; deferredUpsert(item: ObjectLike): DeferredQuery; }