import { type UngroupedData } from '../../dataModelTypes';
import type { DataSet } from '../../dataSet';
import type { DataModelContext } from '../dataModelContext';
import type { DomainManager } from '../domain/domainManager';
/**
 * DataExtractor handles data extraction from DataSet sources.
 *
 * EXTRACTION RESPONSIBILITIES:
 * - Extracts key and value data from DataSet sources
 * - Processes data through property definitions
 * - Tracks data validity and invalid entries per scope
 * - Builds initial ungrouped data structure for further processing
 *
 * DATA VALIDITY TRACKING:
 * - Maintains invalid key/value flags per scope
 * - Enables partial data rendering when some entries are invalid
 * - Tracks partial valid data count for optimization decisions
 */
export declare class DataExtractor<D extends object, K extends keyof D & string> {
    private readonly ctx;
    private readonly domainManager;
    constructor(ctx: DataModelContext<D, K>, domainManager: DomainManager<D, K>);
    extractData(sources: Map<string, DataSet<unknown>>): UngroupedData<D>;
    private extractKeys;
    private readonly markScopeDatumInvalid;
    private extractValues;
    warnDataMissingProperties(sources: Map<string, DataSet<unknown>>): void;
}
