import type IndexProvider from '../types/IndexProvider'; import type { FlatSelector } from '../types/Selector'; import type Selector from '../types/Selector'; import type { BaseItem } from './types'; /** * Retrieves merged index information for a given flat selector by querying multiple * index providers. Combines results from all index providers to determine matched positions * and an optimized selector. * @template T - The type of the items in the collection. * @template I - The type of the unique identifier for the items. * @param indexProviders - An array of index providers to query. * @param selector - The flat selector used to filter items. * @returns An object containing: * - `matched`: A boolean indicating if the selector matched any items. * - `positions`: An array of matched item positions. * - `optimizedSelector`: A flat selector optimized based on the index results. */ export declare function getMergedIndexInfo = BaseItem, I = any>(indexProviders: IndexProvider[], selector: FlatSelector): { matched: boolean; positions: number[]; optimizedSelector: FlatSelector; }; /** * Retrieves index information for a given complex selector by querying multiple * index providers. Handles nested `$and` and `$or` conditions in the selector and * optimizes the selector to minimize processing overhead. * @template T - The type of the items in the collection. * @template I - The type of the unique identifier for the items. * @param indexProviders - An array of index providers to query. * @param selector - The complex selector used to filter items. * @returns An object containing: * - `matched`: A boolean indicating if the selector matched any items. * - `positions`: An array of matched item positions. * - `optimizedSelector`: A selector optimized based on the index results, with unused * conditions removed. */ export default function getIndexInfo = BaseItem, I = any>(indexProviders: IndexProvider[], selector: Selector): { matched: boolean; positions: number[]; optimizedSelector: Selector; };