export declare abstract class Component { static readonly _id: number; static readonly id: number; abstract reset(object: this, ...args: any[]): void; } export declare function makeComponent(constructor: any): void; declare type NonFunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T]; declare type NonFunctionProperties = Pick>; export declare type EntityOf = NonFunctionProperties; export declare type ComponentConstructor = { new (): Component; id: number; }; export interface ComponentInitializator { component: T; args?: T['prototype']['reset']; } export {};