export interface EntityEvictEvent { readonly eventType : "evict" ; readonly typeName : string ; readonly id : any ; readonly causedByGC : boolean ; readonly evictedType : "row" | "fields" ; readonly evictedKeys : ReadonlyArray < EntityKey > ; has ( evictedKey ) : boolean ; evictedValue ( evictedKey ) : any ; } export interface EntityChangeEvent { readonly eventType : "change" ; readonly typeName : string ; readonly id : any ; readonly changedType : "insert" | "update" | "delete" ; readonly changedKeys : ReadonlyArray < EntityKey > ; has ( changedKey ) : boolean ; oldValue ( changedKey ) : any ; newValue ( changedKey ) : any ; } export type EntityKey = string | { readonly name : string ; readonly variables : any ; } ;