import { type IBaseObject } from "../../../entities";
import { type IDataHandler } from "../../common/dataHandler/IDataHandler";
import { type CCMPEventsManager } from "../events/CCMPEventsManager";
type DataHandlerCallback = (object: IBaseObject, value: unknown, oldValue?: unknown) => void;
/**
 * Реализация `IDataHandler` под CCMP поверх `rm::syncedMetaChange`.
 *
 * `CCMPSyncedMetaBridge` переводит нативное событие
 * `ccmp.on('streamSyncedMetaChange')` в internal-bus
 * `rm::syncedMetaChange(entity, key, value, oldValue)`. Этот класс
 * держит per-key реестр колбэков и диспатчит на них пришедшие изменения.
 *
 * Снапшот всех ключей сущности (отправляется CCMP'ом сразу после
 * `StreamIn`) тоже проходит через это событие — поэтому первое появление
 * сущности у клиента триггерит колбэк на каждый уже выставленный сервером
 * ключ (с `oldValue === undefined`).
 */
export declare class CCMPDataHandler implements IDataHandler {
    private readonly _handlers;
    constructor(events: CCMPEventsManager);
    addDataHandler(key: string, callback: DataHandlerCallback): void;
}
export {};
