import { Cancellable } from "@lincode/promiselikes"; import type Appendable from "../../display/core/Appendable"; type Ticker = "beforeRender" | "afterRender" | "render" | "loop"; type SetupTicker = Ticker | typeof queueMicrotask | [() => Promise]; export type SystemOptions | void> = { data?: Data | ((gameObject: GameObject) => Data); effect?: (gameObject: GameObject, data: Data) => void | false | (() => void); cleanup?: (gameObject: GameObject, data: Data) => void; update?: (gameObject: GameObject, data: Data) => void; updateTicker?: Ticker; effectTicker?: SetupTicker; beforeTick?: (queued: Map | Set) => void; afterTick?: (queued: Map | Set) => void; sort?: (a: GameObject, b: GameObject) => number; }; declare const _default: >(name: string, { data, effect, cleanup, update, updateTicker, effectTicker, beforeTick, afterTick, sort }: SystemOptions, userland?: boolean) => { add: ((item: GameObject, initData?: Data | undefined) => false | Cancellable) | ((item: GameObject, initData?: Data | undefined) => boolean); delete: ((item: GameObject) => false | Cancellable | undefined) | ((item: GameObject) => boolean); }; export default _default;