/** * Copyright 2022 Gravwell, Inc. All rights reserved. * * Contact: [legal@gravwell.io](mailto:legal@gravwell.io) * * This software may be modified and distributed under the terms of the MIT * license. See the LICENSE file for details. */ import { SearchDetails } from '~/models/search/search-details'; import { SearchFilter } from '~/models/search/search-filter'; import { SearchSubscription } from '~/models/search/search-subscription'; import { ID } from '~/value-objects/id'; import { RawJSON } from '~/value-objects/json'; import { UpdatableSearchDetails } from '../../models/search/updatable-search-details'; export interface SearchesService { readonly background: { /** Sends a specific search to the background. */ readonly one: (searchID: string) => Promise; }; readonly save: { /** Saves a specific search. */ readonly one: (searchID: string) => Promise; }; readonly delete: { /** Deletes a specific search. */ readonly one: (searchID: string) => Promise; }; readonly download: { readonly one: (searchID: string, downloadFormat: string) => Promise; }; readonly get: { readonly one: (searchID: ID) => Promise; }; readonly create: { readonly one: ( query: string, options?: { filter?: SearchFilter | undefined; metadata?: RawJSON | undefined; noHistory?: boolean; }, ) => Promise; }; readonly update: { readonly one: (data: UpdatableSearchDetails) => Promise; }; readonly stop: { readonly one: (searchID: string) => Promise; }; }