import { DbSetPickDefaultActionRequired, DbSetPickDefaultActionOptional, DeepPartial, EntitySelector } from "../../../types/common-types"; import { IDataContext } from "../../../types/context-types"; import { IDbSet, IDbSetProps, IDbSetBase } from "../../../types/dbset-types"; import { IDbRecord, EntityIdKeys, OmittedEntity } from "../../../types/entity-types"; import { DbSetExtender, DbSetExtenderCreator, DbSetKeyType, IChainIdBuilder, IDbSetBuilderParams, IIdBuilderBase, ISplitDbSetOptions, ITerminateIdBuilder, PropertyMap } from '../../../types/dbset-builder-types'; export declare class DefaultDbSetBuilder, TExtraExclusions extends string, TResult extends IDbSet> { protected _context: IDataContext; protected _documentType: TDocumentType; protected _idKeys: EntityIdKeys; protected _keyType: DbSetKeyType; protected _defaults: DbSetPickDefaultActionRequired; protected _exclusions: string[]; protected _readonly: boolean; protected _extend: DbSetExtenderCreator[]; protected _onCreate: (dbset: IDbSetBase) => void; protected _map: PropertyMap[]; protected _index: string | null; protected _isSplitDbSet: ISplitDbSetOptions; protected _filterSelector: EntitySelector | null; protected _defaultExtend: (i: DbSetExtender, args: IDbSetProps) => TResult; constructor(onCreate: (dbset: IDbSetBase) => void, params: IDbSetBuilderParams); protected _buildParams(): IDbSetBuilderParams; /** * Makes all entities returned from the underlying database readonly. Entities cannot be updated, only adding or removing is available. * @returns DbSetBuilder */ readonly(): DefaultDbSetBuilder, TExtraExclusions, IDbSet, TExtraExclusions>>; /** * Fluent API for building the documents key. Key will be built in the order * keys are added * @param builder Fluent API * @returns DbSetBuilder */ keys(builder: (b: IIdBuilderBase) => (IChainIdBuilder | ITerminateIdBuilder)): DefaultDbSetBuilder; /** * Set default separately for add and retrieval. This is useful to retroactively add new properties * that are not nullable or to supply a default to an excluded property. Default's will only be * set when the property does not exist or is excluded * @param value Pick one or more properties and set their default value * @returns DbSetBuilder */ defaults(value: DbSetPickDefaultActionOptional): DefaultDbSetBuilder; /** * Set default values for both add and retrieval of entities. This is useful to retroactively add new properties * that are not nullable or to supply a default to an excluded property. Default's will only be * set when the property does not exist or is excluded * @param value Pick one or more properties and set their default value * @returns DbSetBuilder */ defaults(value: DeepPartial>): DefaultDbSetBuilder; /** * Exclude properties from the DbSet.add(). This is useful for defaults. Properties can be excluded * and default values can be set making it easier to add an entity. Can be called one or many times to * exclude one or more properties * @param exclusions Property Exclusions * @returns DbSetBuilder */ exclude(...exclusions: T[]): DefaultDbSetBuilder>; map(propertyMap: PropertyMap): DefaultDbSetBuilder; /** * Specify the name of the index to use for all queries * @param name Name of the index * @returns DbSetBuilder */ useIndex(name: string): DefaultDbSetBuilder; extend>(extend: (i: new (props: IDbSetProps) => TResult, args: IDbSetProps) => TExtension): DefaultDbSetBuilder; /** * Set a filter to be used on all queries * @param selector * @returns DbSetBuilder */ filter(selector: EntitySelector): DefaultDbSetBuilder; /** * Must call to fully create the DbSet. * @returns new DbSet */ create(): TResult; }