import type { ReactivableEvents } from 'modern-idoc'; import { Reactivable } from 'modern-idoc'; export interface CoreObjectEvents extends ReactivableEvents { destroy: []; } export interface CoreObject { on: (event: K, listener: (...args: CoreObjectEvents[K]) => void) => this; once: (event: K, listener: (...args: CoreObjectEvents[K]) => void) => this; off: (event: K, listener: (...args: CoreObjectEvents[K]) => void) => this; emit: (event: K, ...args: CoreObjectEvents[K]) => this; } export declare class CoreObject extends Reactivable { readonly instanceId: number; destroyed: boolean; get json(): Record; set json(val: Record); protected _nextTick(): Promise; equal(target: CoreObject | undefined | null): boolean; protected _destroy(): void; destroy(): void; }