///
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 {};