import type { PropertyId, PropertySelectors } from '../../dataModelTypes';
import type { DataModelContext } from '../dataModelContext';
/**
 * ScopeCacheManager manages the scope cache for property definitions.
 *
 * SCOPE CACHE RESPONSIBILITIES:
 * - Maintains mapping of property IDs to definitions per scope
 * - Validates uniqueness of property IDs within each scope
 * - Provides lookup functions for keys, values, and aggregates
 * - Handles property ID resolution with dot notation support
 *
 * SCOPE CONCEPT:
 * Scopes allow multiple data sources (series) to use the same DataModel
 * while maintaining separate property definitions. Each scope has its own
 * namespace for property IDs.
 */
export declare class ScopeCacheManager<K extends string> {
    private readonly ctx;
    constructor(ctx: DataModelContext<any, K>);
    processScopeCache(): void;
    valueGroupIdxLookup({ matchGroupIds }: PropertySelectors): number[];
    valueIdxLookup(scopes: string[] | undefined, prop: PropertyId<string>): number[];
    buildAccessors(defs: Iterable<{
        property: string;
    }>): Map<string, (d: any) => any>;
}
