import { IEntitiesSearchResults, IEntityVersionsSearchParameters, IEntityVersionsSearchResults } from "../models"; import { IAuthenticationContext } from "./authentication"; import { SortingType } from "./common"; import { IEntitiesDeleteResult } from "./repository"; import { IEntitySearchParameters, ISearchFilters } from "./searchParameters"; import { IEntityFacets } from "./searchResults"; export interface IEntitiesSearchQueryOptions> { relations?: TEntitySearchParameters["relations"]; } export interface IEntitiesSearchQuery, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> { execute(request: TEntitySearchParameters, options?: IEntitiesSearchQueryOptions): Promise>; } export interface IEntityGetQueryOptions> { relations?: TEntitySearchParameters["relations"]; } export interface IEntityGetQuery> { execute(id: TEntityId, options?: IEntityGetQueryOptions): Promise; } export interface IEntitiesFindQuery, TSorting extends SortingType, TCursor> { execute(request: { filters?: TEntitySearchParameters["filters"]; sorting?: TEntitySearchParameters["sorting"]; relations?: TEntitySearchParameters["relations"]; }): Promise; } export interface IEntityExistsQuery { execute(filters: TEntityFilters): Promise; } export interface IEntitiesCountQuery { execute(filters: TEntityFilters): Promise; } export interface IEntityVersionsSearchQuery { execute(params: IEntityVersionsSearchParameters): Promise>; } export interface IEntitiesQueryBuilder, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TUserContext> { get(id: TEntityId, context?: IAuthenticationContext, options?: IEntityGetQueryOptions): Promise; find(request?: { filters?: TEntitySearchParameters["filters"]; sorting?: TEntitySearchParameters["sorting"]; relations?: TEntitySearchParameters["relations"]; }, context?: IAuthenticationContext): Promise; search(request: TEntitySearchParameters, context?: IAuthenticationContext): Promise>; exists(filters: NonNullable, context?: IAuthenticationContext): Promise; count(filters: NonNullable, context?: IAuthenticationContext): Promise; delete(filters: NonNullable, context?: IAuthenticationContext): Promise; }