import type { KeyAsString } from 'type-fest'; import type ImmerChangeset from '../changeset/immer-changeset'; import type { Changeset } from '../types/changeset'; export type OnSetCallback> = (key: KeyAsString, value: unknown, changeset: T) => void; interface EventMap> { set: Map>; } type MapValue, K extends KeyAsString>> = EventMap[K] extends Map ? Callback : never; export default class ChangesetEventEmitter> { private changeset; private events; constructor(changeset: T); emitOnSet>(key: K, value: DTO[K]): void; on>>(event: K, callback: MapValue): Symbol; off>>(event: K, uniqueId: Symbol): void; } export {}; //# sourceMappingURL=event-emitter.d.ts.map