import { IDocumentQueryBaseSingle } from "./IDocumentQueryBaseSingle"; import { IAggregationDocumentQuery } from "../Queries/Facets/IAggregationDocumentQuery"; import { IEnumerableQuery } from "./IEnumerableQuery"; import { QueryResult } from "../Queries/QueryResult"; import { DocumentType } from "../DocumentAbstractions"; import { QueryData } from "../Queries/QueryData"; import { GroupBy } from "../Queries/GroupBy"; import { IDocumentQueryBase } from "./IDocumentQueryBase"; import { IGroupByDocumentQuery } from "./IGroupByDocumentQuery"; import { IFacetBuilder } from "../Queries/Facets/IFacetBuilder"; import { FacetBase } from "../Queries/Facets/FacetBase"; import { IMoreLikeThisBuilderForDocumentQuery } from "../Queries/MoreLikeThis/IMoreLikeThisBuilderForDocumentQuery"; import { MoreLikeThisBase } from "../Queries/MoreLikeThis/MoreLikeThisBase"; import { ISuggestionBuilder } from "../Queries/Suggestions/ISuggestionBuilder"; import { ISuggestionDocumentQuery } from "../Queries/Suggestions/ISuggestionDocumentQuery"; import { SuggestionBase } from "../Queries/Suggestions/SuggestionBase"; import { ITimeSeriesQueryBuilder } from "../Queries/TimeSeries/ITimeSeriesQueryBuilder"; import { TimeSeriesAggregationResult } from "../Queries/TimeSeries/TimeSeriesAggregationResult"; import { TimeSeriesRawResult } from "../Queries/TimeSeries/TimeSeriesRawResult"; import { Field } from "../../Types"; import { ProjectionBehavior } from "../Queries/ProjectionBehavior"; import { IFilterFactory } from "../Queries/IFilterFactory"; export interface IDocumentQuery extends IDocumentQueryBase>, IDocumentQueryBaseSingle, IEnumerableQuery { indexName: any; isDistinct: any; getQueryResult(): Promise; selectFields(property: string, projectionClass: DocumentType): IDocumentQuery; selectFields(properties: string[], projectionClass: DocumentType): IDocumentQuery; selectFields(properties: string[], projectionClass: DocumentType, projectionBehavior: ProjectionBehavior): IDocumentQuery; selectFields(properties: string[]): IDocumentQuery; selectFields(property: string): IDocumentQuery; selectFields(queryData: QueryData, projectionClass: DocumentType): IDocumentQuery; selectFields(queryData: QueryData, projectionClass: DocumentType, projectionBehavior: ProjectionBehavior): IDocumentQuery; selectTimeSeries(timeSeriesQuery: (builder: ITimeSeriesQueryBuilder) => void, projectionClass: DocumentType): IDocumentQuery; selectTimeSeries(timeSeriesQuery: (builder: ITimeSeriesQueryBuilder) => void, projectionClass: DocumentType): IDocumentQuery; ofType(resultClass: DocumentType): IDocumentQuery; groupBy(fieldName: Field, ...fieldNames: string[]): IGroupByDocumentQuery; groupBy(field: GroupBy, ...fields: GroupBy[]): IGroupByDocumentQuery; moreLikeThis(builder: (moreLikeThisBuilder: IMoreLikeThisBuilderForDocumentQuery) => void): IDocumentQuery; moreLikeThis(moreLikeThis: MoreLikeThisBase): IDocumentQuery; filter(builder: (factory: IFilterFactory) => void): IDocumentQuery; filter(builder: (factory: IFilterFactory) => void, limit: number): IDocumentQuery; suggestUsing(suggestion: SuggestionBase): ISuggestionDocumentQuery; suggestUsing(action: (builder: ISuggestionBuilder) => void): ISuggestionDocumentQuery; aggregateBy(action: (builder: IFacetBuilder) => void): IAggregationDocumentQuery; aggregateBy(facet: FacetBase): IAggregationDocumentQuery; aggregateBy(...facet: FacetBase[]): IAggregationDocumentQuery; aggregateUsing(facetSetupDocumentId: string): IAggregationDocumentQuery; }