import { Getter, Model } from '@loopback/repository'; import { IAuthUserWithPermissions } from '@sourceloop/core'; import { SearchFilter } from '..'; import { SearchQuery } from '../models'; import { SearchFunctionType, SearchServiceConfig } from '../types'; export interface SearchControllerBase { readonly searchFn: SearchFunctionType; readonly config: SearchServiceConfig; readonly filter: SearchFilter; /** * Implementation of the endpoint `GET /search`. * @param query search query */ search(query: SearchQuery, saveInRecents: boolean, getUser: Getter): Promise; } export interface SearchControllerCtor { new (config: SearchServiceConfig, searchFn: SearchFunctionType, filter: SearchFilter): SearchControllerBase; }