import { IAggregationRequest, IFilterRequest, IResultAggregation } from "../../model"; import { IHttpClient } from "../http/IHttpClient"; import { IPagedDataProvider } from "./IPagedDataProvider"; import { IRefinableDataProvider } from "./IRefinableDataProvider"; /** * Handles pagination for search queries against MS Graph Search API. */ export declare class GraphSearchPagedDataProvider implements IPagedDataProvider, IRefinableDataProvider { protected graphClient: IHttpClient; entityTypes: ("message" | "event" | "driveItem" | "listItem" | "person" | "chatMessage" | "externalItem" | "site")[]; selectFields: string[]; protected query: string; protected orderColumn: string; protected isDescending: boolean; protected currentPage: number; pageSize: number; allItemsCount: number; graphSearchEndpoint: string; protected requestedRefiners: IAggregationRequest[]; queryTemplate?: string; protected filters: IFilterRequest[]; /** * Initialized new instance of GraphSearchPagedDataProvider. * @param graphClient IHttpClient implementation supporting Graph API calls. * @param entityTypes Entity types for search. listItem by default. * @param selectFields Fields You want to select in the query. */ constructor(graphClient: IHttpClient, entityTypes?: ("message" | "event" | "driveItem" | "listItem" | "person" | "chatMessage" | "externalItem" | "site")[], selectFields?: string[]); setRefiners(aggregator?: IAggregationRequest[]): void; applyRefiners(filters: IFilterRequest[]): void; currentAggregations: IResultAggregation[]; protected buildSearchRequest(): { requests: { entityTypes: ("message" | "event" | "driveItem" | "listItem" | "person" | "chatMessage" | "externalItem" | "site")[]; from: number; to: number; query: any; sortProperties: any; fields: any; aggregations: IAggregationRequest[]; aggregationFilters: string[]; size: number; }[]; }; protected callForData(): Promise; getData(): Promise; private parseAggregations; setQuery(value: string): void; getQuery(): string; setOrder(orderBy: string, orderDir: "ASC" | "DESC"): void; getNextPage(): Promise; isNextPageAvailable(): boolean; getPreviousPage(): Promise; isPreviousPageAvailable(): boolean; getCurrentPage(): number; jumpToAPage(pageIndex: number): Promise; }