import { AutoCompleteItem } from '../../../common/entities/AutoCompleteItem'; import { SearchResultDTO } from '../../../common/entities/SearchResultDTO'; import { PhotoEntity } from './enitites/PhotoEntity'; import { Brackets, SelectQueryBuilder } from 'typeorm'; import { SearchQueryDTO, SearchQueryTypes } from '../../../common/entities/SearchQueryDTO'; import { SortingMethod } from '../../../common/entities/SortingMethods'; import { SessionContext } from '../SessionContext'; export declare class SearchManager { private DIRECTORY_SELECT; private queryIdBase; static setSorting(query: SelectQueryBuilder, sortings: SortingMethod[]): SelectQueryBuilder; private static autoCompleteItemsUnique; autocomplete(session: SessionContext, value: string, type: SearchQueryTypes): Promise; search(session: SessionContext, queryIN: SearchQueryDTO): Promise; getNMedia(session: SessionContext, query: SearchQueryDTO, sortings: SortingMethod[], take: number, photoOnly?: boolean): Promise; getCount(session: SessionContext, query: SearchQueryDTO): Promise; prepareAndBuildWhereQuery(queryIN: SearchQueryDTO, directoryOnly?: boolean, aliases?: { [key: string]: string; }): Promise; prepareQuery(queryIN: SearchQueryDTO): Promise; /** * Builds the SQL Where query from search query * @param query input search query * @param directoryOnly Only builds directory related queries * @param aliases for SQL alias mapping * @private */ buildWhereQuery(query: SearchQueryDTO, directoryOnly?: boolean, aliases?: { [key: string]: string; }): Brackets; hasDirectoryQuery(query: SearchQueryDTO): boolean; protected flattenSameOfQueries(query: SearchQueryDTO): SearchQueryDTO; /** * Assigning IDs to search queries. It is a help / simplification to typeorm, * so less parameters are needed to pass down to SQL. * Witch SOME_OF query the number of WHERE constrains have O(N!) complexity */ private assignQueryIDs; /** * Returns only those parts of a query tree that only contains directory-related search queries */ private filterDirectoryQuery; private getGPSData; private encapsulateAutoComplete; } export interface SearchQueryDTOWithID extends SearchQueryDTO { queryId: string; }