import { Connection, DependencyObserver } from "../app"; /** * Observable wrapper for recursive multi-level searches following linker paths with automatic updates. */ declare class RecursiveSearchObservable extends DependencyObserver { /** Array of linker type names defining the search path */ searchLinkers: string[]; /** Search text placeholder */ searchText: string; /** Text to search for in linked concepts */ textSearch: string; /** List of connection objects */ connections: Connection[]; /** List of external (linker) connection IDs */ externalConnectionIds: number[]; /** Search result data */ data: any; /** * Creates a new recursive search observable. * @param id - The starting concept ID for the recursive search * @param linkers - Array of linker type names defining the traversal path * @param textSearch - Optional text to search for in linked concepts * @param format - Output format (RAW for raw IDs, undefined for formatted compositions) */ constructor(id: number, linkers: string[], textSearch?: string, format?: number); /** * Overrides base method to track connection changes for concepts in the search results. * @param id - The concept ID to track */ listenToEvent(id: number): void; /** * Executes recursive search and sets up change listeners for all found compositions. * @returns Formatted search results or raw ID structure */ bind(): Promise; /** * Builds the search results in the specified format. * @returns Formatted composition data or raw ID structure */ build(): Promise; } /** * Creates an observable that performs recursive multi-level searches and updates subscribers when results change. * @param id - The starting concept ID for the recursive search * @param linkers - Array of linker type names defining the traversal path * @param searchText - Optional text to search for in linked concepts * @param format - Output format (RAW for raw IDs, undefined for formatted compositions) * @returns Observable instance for the recursive search * * @example * const observer = RecursiveSearchListener(123, ["Author", "Category"], "tutorial", RAW); * observer.subscribe((results) => console.log(results)); */ export declare function RecursiveSearchListener(id: number, linkers: string[], searchText?: string, format?: number): RecursiveSearchObservable; export {};