import type { BaseItem } from '../Collection/types'; import type { FlatSelector } from '../types/Selector'; type KeyResult = { include: (string | null)[] | null; exclude: (string | null)[] | null; }; /** * Extracts the matching and excluded keys for a given field in a selector. * Supports serialized values and `$in`/`$nin` field expressions for optimization. * Returns `null` for include/exclude if the field cannot be optimized. * @template T - The type of the items in the selector. * @template I - The type of the unique identifier for the items. * @param field - The name of the field to extract matching keys for. * @param selector - The selector object containing query criteria. * @returns An object containing arrays of serialized included and excluded keys, * or `null` if the field cannot be optimized. */ export default function getMatchingKeys = BaseItem, I = any>(field: string, selector: FlatSelector): KeyResult; export {};