export interface SearchByHeightQuery { readonly height: number; readonly condition: string; } export interface SearchBySentFromOrToQuery { readonly sentFromOrTo: string; } /** * This query type allows you to pass arbitrary key/value pairs to the backend. It is * more powerful and slightly lower level than the other search options. */ export interface SearchByTagsQuery { readonly tags: ReadonlyArray<{ readonly key: string; readonly value: string }>; } export type SearchTxQuery = SearchByHeightQuery | SearchBySentFromOrToQuery | SearchByTagsQuery; export function isSearchByHeightQuery(query: SearchTxQuery): query is SearchByHeightQuery { return (query as SearchByHeightQuery).height !== undefined; } export function isSearchBySentFromOrToQuery(query: SearchTxQuery): query is SearchBySentFromOrToQuery { return (query as SearchBySentFromOrToQuery).sentFromOrTo !== undefined; } export function isSearchByTagsQuery(query: SearchTxQuery): query is SearchByTagsQuery { return (query as SearchByTagsQuery).tags !== undefined; } export interface SearchTxFilter { readonly minHeight?: number; readonly maxHeight?: number; }