/// <reference types="node" />
import { EventEmitter } from "events";
export declare class LifecycleEventBus extends EventEmitter {
}
export declare const lifecyclebus: LifecycleEventBus;
export declare const enum LifeCycleEvents {
    PREINIT = "preinit",
    INIT = "init",
    POSTINIT = "postinit",
    ONTICK = "ontick",
    ONPOSTTICK = "onposttick",
    ONVIUPDATE = "onviupdate",
    ONCREATERESOURCES = "oncreateresources"
}
export declare function Preinit(): (this: any, target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function Init(): (this: any, target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function Postinit(): (this: any, target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function onTick(): (this: any, target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function onPostTick(): (this: any, target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function onViUpdate(): (this: any, target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function onCreateResources(): (this: any, target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function setupLifecycle(instance: any): void;
export declare function setupLifecycle_IPlugin(instance: any): void;
