import type { Search } from '../../interfaces/core'; import type { AnySearchType } from '../../types/search'; import type { KeywordCollectionSearch, KeywordVideoSearch, SemanticCollectionSearch, SemanticVideoSearch, SceneCollectionSearch, SceneVideoSearch } from '../../types/search'; import { HttpClient } from '../../utils/httpClient'; import { SearchResult } from './searchResult'; declare class SceneSearch implements Search { #private; constructor(http: HttpClient); private getRequestData; searchInsideVideo: (data: SceneVideoSearch) => Promise; searchInsideCollection: (_: SceneCollectionSearch) => Promise; } declare class SemanticSearch implements Search { #private; constructor(http: HttpClient); private getRequestData; searchInsideVideo: (data: SemanticVideoSearch) => Promise; searchInsideCollection: (data: SemanticCollectionSearch) => Promise; } declare class KeywordSearch implements Search { #private; constructor(http: HttpClient); private getRequestData; searchInsideVideo: (data: KeywordVideoSearch) => Promise; searchInsideCollection: (_: KeywordCollectionSearch) => Promise; } declare class LLMSearch implements Search { #private; constructor(http: HttpClient); private getRequestData; searchInsideVideo: (data: SemanticVideoSearch) => Promise; searchInsideCollection: (data: SemanticCollectionSearch) => Promise; } export declare class SearchFactory { private vhttp; constructor(http: HttpClient); getSearch(type: AnySearchType): SceneSearch | SemanticSearch | KeywordSearch | LLMSearch; } export {};