import { SearchResponse } from './responses/search-response'; import type { SearchParams } from './search-params'; import type { SearchServiceError } from './search-service-error'; import type { SearchServiceInterface } from './search-service-interface'; import type { Result } from '@internetarchive/result-type'; import { SearchType } from './search-type'; import type { SearchBackendOptionsInterface } from './search-backend/search-backend-options'; import type { SearchBackendInterface } from './search-backend/search-backend-interface'; /** * The Search Service is responsible for taking the raw response provided by * the Search Backend and modeling it as a `SearchResponse` object. */ export declare class SearchService implements SearchServiceInterface { static default: SearchServiceInterface; private backendOptions; constructor(backendOptions?: SearchBackendOptionsInterface); /** @inheritdoc */ search(params: SearchParams, searchType?: SearchType): Promise>; itemDetails(identifier: string): Promise>; /** * Retrieve a search backend that can handle the given type of search. * @param type The type of search that the backend needs to handle. * @param options Options to pass to the search backend. */ static getBackendForSearchType(type: SearchType, options?: SearchBackendOptionsInterface): SearchBackendInterface; }