import type { BaseItem } from '../Collection/types';
import type { FlatSelector } from '../types/Selector';
type KeyResult = {
    include: string[] | null;
    exclude: string[] | 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<T extends BaseItem<I> = BaseItem, I = any>(field: string, selector: FlatSelector<T>): KeyResult;
export {};
