import { Observable } from "rxjs"; import { IBimModelSearchResult, IBimSearchSetData } from "../../data"; export interface IBimSearchSetService { /** * Get the first-level search sets located directly under the hidden root folder of a model. * Does not traverse into subfolders; returns only immediate children. * @param {string} id Model identifier whose root search-set folder is queried. * @returns {Observable} Emits the list of search sets at level 1, then completes. */ getFromModel(id: string): Observable; /** * Get all search sets from the hidden root folder of a model recursively. * Traverses all nested folders and aggregates every search set found. * @param {string} id Model identifier whose search sets are retrieved recursively. * @returns {Observable} Emits the flattened list of all search sets from all levels, then completes. */ getRecursivelyFromModel(id: string): Observable; /** * Get search sets directly contained in a specific search-set folder by its ID. * Does not include items from child folders. * @param {string} id Search-set folder identifier to read from. * @returns {Observable} Emits the list of immediate search sets in the folder, then completes. */ getFromFolder(id: string): Observable; /** * Execute a stored search set against specified model parts. * @param {string} id Identifier of the search set to execute. * @param {string[]} modelPartIds Identifiers of model parts to include in the search scope. * @returns {Observable} Emits matched items for the executed search set, then completes. */ executeSearchSet(id: string, modelPartIds: string[]): Observable; /** * Execute an ad-hoc string-based query against specified model parts. * @param {string} query Query expression. * @param {string[]} modelPartIds Identifiers of model parts to include in the search scope. * @returns {Observable} Emits matched items for the query, then completes. */ executeStringQuery(query: string, modelPartIds: string[]): Observable; }