import { ISystemActions } from "./world.spec" ; import { IAccessQuery , Query } from "./query/query" ; import { TObjectProto } from "./_.spec" ; import { IIStateProto } from "./state.spec" ; export interface ISystem { readonly query ? : Query < IAccessQuery < TObjectProto > > ; readonly states ? : IIStateProto [ ] ; param actions destroy ( actions ) : void | Promise < void > ; param actions run ( actions ) : void | Promise < void > ; param actions setup ( actions ) : void | Promise < void > ; } export interface IISystemProto { new ( ) : ISystem ; }