import type { IValueModel } from './types.js'; export interface IValueCollector { getValue(source: TSource): TValue; setValue(source: TSource, value: TValue): void; } type SimpleCollector = { get: () => T; set: (t: T) => void; }; export type ModelCollectorsMap = { [P in keyof T]?: IValueModel; }; export type CollectorsMap = { [P in keyof T]?: SimpleCollector; }; export declare class ModelCollector { private readonly _collectors; addModels(models: ModelCollectorsMap): this; addModel>(key: TKey, source: TSource): this; addCollector>(key: TKey, model: TModel, collector: TCollector): this; remove(key: keyof T): this; collect(): T; populate(data: T): void; } export {};