import { GuidValue, SemanticSearchReference, SemanticSearchResult } from "@omnia/fx/models"; import { Enums } from "./Enums"; import { SearchCategoryBase } from "./SearchCategory"; export interface SearchResultItem { /** * Type of the search result item is based on the search category provider. */ itemType: Enums.SearchResultItemTypes; imageIconSize?: string; imageRatioUniqueId?: GuidValue; } export interface CategorySearchResult { categoryId: GuidValue; totalRows: number; items: Array; } export interface SemanticSearchCategorySearchResult extends CategorySearchResult { semanticSearchResult: SemanticSearchResult; error?: string; } export interface SemanticSearchResultItem extends SearchResultItem { reference: SemanticSearchReference; } export interface SharePointCategorySearchResult extends CategorySearchResult { refiners: Array; } export interface SharePointSearchResultItem extends SearchResultItem { spWebUrl: string; fileType: string; siteTitle: string; siteDescription: string; siteLogo: string; lastModifiedTime?: Date; created?: Date; modifiedBy: string; author: string; authorOWSUSER: string; description: string; contentTypeId: string; contentType?: Enums.SearchContentTypes; modifiedById: string; editorOWSUSER: string; webTemplate: string; title: string; path: string; serverRedirectedUrl?: string; customPropertiesResult: { [key: string]: string; }; } export interface MicrosoftSearchResultItem extends SearchResultItem { title: string; path: string; customPropertiesResult: { [key: string]: string; }; } export interface Refiner { isTaxonomy: boolean; name: string; entries: Array; showEntries: Array; isSelected: boolean; } export interface Refinement { refinementName: string; refinementValue: string; refinementToken: string; refinementCount: number; refinementFilterValue?: string; isSelected?: boolean; } export interface SearchProviderBase { title: string; providerId: GuidValue; providerDisplayRenderManifestId: GuidValue; } export interface SearchProviderSettingProps { searchCategory: T; onChanged: (value: T) => void; } export interface SearchRequest { keyword?: string; categoryOptions: Array; } export interface SearchCategoryOption { paging: PagingOption; providerId: GuidValue; searchCategory: SearchCategoryBase; } export interface PagingOption { take: number; skip: number; }