import IFile from "../storage/IFile";
import { IEventHandler } from "ste-events";
import IDefinition from "./../minecraft/IDefinition";
import * as jsonschema from "json-schema";
export default class JsonSchemaDefinition implements IDefinition {
    private _file?;
    private _id?;
    private _isLoaded;
    data?: jsonschema.JSONSchema7;
    private _onLoaded;
    get isLoaded(): boolean;
    get file(): IFile | undefined;
    get onLoaded(): import("ste-events").IEvent<JsonSchemaDefinition, JsonSchemaDefinition>;
    set file(newFile: IFile | undefined);
    get id(): string | undefined;
    set id(newId: string | undefined);
    get shortId(): string;
    _ensureDataInitialized(): void;
    static ensureOnFile(file: IFile, loadHandler?: IEventHandler<JsonSchemaDefinition, JsonSchemaDefinition>): Promise<JsonSchemaDefinition>;
    persist(): boolean;
    load(): Promise<void>;
}
