import IFile from "../storage/IFile";
import IComponent from "./IComponent";
import IManagedComponentSetItem from "./IManagedComponentSetItem";
import IManagedComponent from "./IManagedComponent";
import { ManagedComponent } from "./ManagedComponent";
import IDefinition from "./IDefinition";
import ClientBiomeJSONFile, { ClientBiomeJSONFileMinecraftClientBiome } from "@minecraft/bedrock-schemas/types/rp/client_biomes/ClientBiomeJSONFile";
export default class BiomeResourceDefinition implements IManagedComponentSetItem, IDefinition {
    private _typeId;
    private _file?;
    private _id?;
    private _isLoaded;
    _data?: ClientBiomeJSONFile;
    private _managed;
    private _onLoaded;
    private _onComponentAdded;
    private _onComponentRemoved;
    private _onComponentChanged;
    get data(): ClientBiomeJSONFile;
    get clientBiomeData(): ClientBiomeJSONFileMinecraftClientBiome;
    get isLoaded(): boolean;
    get file(): IFile;
    get onLoaded(): import("ste-events").IEvent<BiomeResourceDefinition, BiomeResourceDefinition>;
    get onComponentAdded(): import("ste-events").IEvent<BiomeResourceDefinition, IManagedComponent>;
    get onComponentRemoved(): import("ste-events").IEvent<BiomeResourceDefinition, string>;
    get onComponentChanged(): import("ste-events").IEvent<BiomeResourceDefinition, IManagedComponent>;
    constructor(typeId?: string);
    get typeId(): string;
    set typeId(newId: string);
    get id(): string;
    set id(newId: string);
    private _ensureBiomeDataInitialized;
    ensureComponent(id: string, defaultData?: IComponent | string | string[] | boolean | number[] | number | undefined): IManagedComponent;
    getComponent(id: string): IManagedComponent | undefined;
    notifyComponentUpdated(id: string): void;
    getAllComponents(): IManagedComponent[];
    getComponents(): IManagedComponent[];
    addComponent(id: string, componentOrData: ManagedComponent | IComponent | string | string[] | boolean | number[] | number | undefined): IManagedComponent;
    removeComponent(id: string): void;
    static ensureOnFile(file: IFile): Promise<BiomeResourceDefinition | undefined>;
    persist(): Promise<boolean>;
    load(): Promise<void>;
    get shortId(): string;
    get namespace(): string;
    ensureDefinition(): void;
}
