import Location from "./Location";
import ComponentizedBase from "./ComponentizedBase";
import NbtBinaryTag from "./NbtBinaryTag";
import Rotation from "./Rotation";
import IPropertyObject from "../dataform/IPropertyObject";
import IProperty from "./../dataform/IProperty";
import ComponentProperty from "./ComponentProperty";
import ModelGeometryDefinition from "./ModelGeometryDefinition";
import { IGeometry } from "./IModelGeometry";
export default class Entity extends ComponentizedBase implements IPropertyObject {
    _typeId: string;
    location: Location;
    rotation: Rotation;
    tags: string[];
    definitions: string[];
    customModel?: ModelGeometryDefinition | undefined;
    /** Pre-transformed geometry that takes precedence over customModel.defaultGeometry.
     *  Set by VanillaProjectManager after applying VanillaGeometryTransforms. */
    customGeometry?: IGeometry | undefined;
    customTextureData?: Uint8Array | undefined;
    customTextureUrl?: string | undefined;
    customTintColor?: {
        r: number;
        g: number;
        b: number;
        a: number;
    } | undefined;
    customIgnoreAlpha?: boolean | undefined;
    private _onPropertyChanged;
    get onPropertyChanged(): import("ste-events").IEvent<Entity, IProperty>;
    get typeId(): string;
    set typeId(newTypeId: string);
    getProperty(name: string): ComponentProperty;
    ensureProperty(name: string): ComponentProperty;
    addProperty(name: string): ComponentProperty;
    notifyComponentPropertyChanged(property: ComponentProperty): void;
    loadDefinitionsFromNbtTag(tagsTag: NbtBinaryTag): void;
    loadTagsFromNbtTag(tagsTag: NbtBinaryTag): void;
    loadRotationFromNbtTag(rotationTag: NbtBinaryTag): void;
    loadLocationFromNbtTag(locationTag: NbtBinaryTag): void;
}
