/**
 * Lazily builds and caches lookup indexes for `encoding.key` fields so that
 * bookmarked point selections can be resolved back to datums efficiently.
 *
 * TODO: Use requestIdleCallback to warm up the index to prevent jank on first access.
 */
export default class KeyIndex {
    invalidate(): void;
    /**
     * @param {string[]} keyFields
     * @param {import("../spec/channel.js").Scalar[]} keyTuple
     * @param {Iterable<Data>} facetBatches
     * @returns {Datum | undefined}
     */
    findDatum(keyFields: string[], keyTuple: import("../spec/channel.js").Scalar[], facetBatches: Iterable<import("./flowNode.js").Data>): import("./flowNode.js").Datum | undefined;
    #private;
}
//# sourceMappingURL=keyIndex.d.ts.map