/// import { EventEmitter } from 'events'; export default class BaseModel extends EventEmitter { _data: DataWrapper; _options?: any; _initData: T; constructor(data: T, options?: any); toString(): string; toJSON(): T; getId(): any; remove(key?: string): void; reset(): void; get(key: string): any; set(key: string, value: any): void; } declare type OperationType = 'get' | 'set' | 'delete' | 'keys'; declare type DataKey = string | string[]; declare type OperationFunc = (key?: DataKey, value?: any) => any; declare class DataWrapper { private _committing; constructor(data: T); _checkCommittingState(): void; private _getWrappedParentForKey; get: OperationFunc; set: OperationFunc; delete: OperationFunc; keys: OperationFunc; toString(): string; getOriginalData(): T; toJSON(): T; private _commitWrapper; commit(type: OperationType, key?: DataKey, value?: any): any; } export {};