import { Initializer } from "../../export-interfaces";
import { SimpleCamera } from "../simple-camera";
import { LogicComponent } from "../logic-component";
import { Scene } from "../scene";
import { WorldManagement } from "../world-management";
import { P5 } from "../p5";
export declare abstract class EntitySuit<P = any> implements Initializer<P> {
    simpleCamera: SimpleCamera;
    readonly id: string;
    private _layerIndex;
    private _name;
    private _scene;
    private _worldManagement;
    private _children;
    private _parent?;
    private _renderer;
    isVisible: boolean;
    scaleX: number;
    scaleY: number;
    abstract update(): void;
    abstract draw(): void;
    get renderer(): P5;
    set renderer(_renderer: P5);
    get children(): EntitySuit<any>[];
    get layerIndex(): number;
    get name(): string;
    set layerIndex(_layerIndex: number);
    set name(_name: string);
    get parent(): EntitySuit<any>;
    get scene(): Scene<any>;
    set worldManagement(_worldManagement: WorldManagement);
    get worldManagement(): WorldManagement;
    addChild(target: EntitySuit | LogicComponent<EntitySuit>): void;
    removeChild(entity: EntitySuit): void;
    unChild(entity: EntitySuit): void;
    getProperty<T>(name: string): T;
    preInitial(worldManagement: WorldManagement): void;
    active(_: WorldManagement): void;
    bootstrapCompleted(_: WorldManagement): void;
    /**
     * invoke when mouse move on canvas
     * @void
     */
    onMouseMove(): void;
    /**
     * invoke when mouse pressed on canvas
     * @void
     */
    onMousePressed(): void;
    /**
     * invoke when mouse release from canvas
     * @void
     */
    onMouseRelease(): void;
    /**
     * invoke when entity is added into world
     * @void
     */
    onActive(): void;
    /**
     * invoke when scene bootstrap completed, if entity that added after scene completed like ex: prefab, bullet,... then this function will not invoke
     * @void
     */
    onBootstrapCompleted(): void;
    initial(params: P): void;
}
//# sourceMappingURL=entity-suit.d.ts.map