import IFile from "../storage/IFile";
import { IEventHandler } from "ste-events";
import Project from "../app/Project";
import IImageEditor, { IImageItem, IImageOutput, PaintingSize } from "./IImageEdits";
import { ImageItem } from "./ImageItem";
import IImageEdits from "./IImageEdits";
import ProjectItem from "../app/ProjectItem";
export default class ImageEditsDefinition {
    private _file?;
    private _id?;
    private _isLoaded;
    items: ImageItem[];
    _backgroundItem?: ImageItem;
    data?: IImageEditor;
    private _onLoaded;
    project: Project | undefined;
    get stackPosition(): number | undefined;
    set stackPosition(newStackPosition: number | undefined);
    get backgroundItem(): ImageItem;
    ensureBackgroundItem(imageData: IImageItem): ImageItem;
    get height(): number;
    set height(height: number);
    get width(): number;
    set width(width: number);
    get isLoaded(): boolean;
    get file(): IFile | undefined;
    set file(newFile: IFile | undefined);
    get onLoaded(): import("ste-events").IEvent<ImageEditsDefinition, ImageEditsDefinition>;
    get id(): string | undefined;
    set id(newId: string | undefined);
    get outputs(): IImageOutput[];
    private ensureData;
    updateOutputs(project: Project): Promise<void>;
    getCorrespondingResourcePackFolder(): Promise<import("../storage/IFolder").default>;
    getPaintingOverrideFolder(): Promise<import("../storage/IFolder").default>;
    getCorrespondingBlockTextureFolder(): Promise<import("../storage/IFolder").default>;
    updateOutput(project: Project, output: IImageOutput): Promise<void>;
    setFromCreationData(creationData: IImageEdits): Promise<void>;
    static getPaintingWidth(paintingSize: PaintingSize): 16 | 48;
    static getPaintingHeight(paintingSize: PaintingSize): 16 | 48 | 64;
    updateBlocks(project: Project, name: string, width: number, height: number): Promise<void>;
    addNewDrawingItem(item: ImageItem): void;
    static ensureAsAccessoryOnImageProjectItem(projectItem: ProjectItem): Promise<ImageEditsDefinition>;
    static ensureOnFile(file: IFile, project: Project, loadHandler?: IEventHandler<ImageEditsDefinition, ImageEditsDefinition>): Promise<ImageEditsDefinition>;
    persist(): Promise<boolean>;
    save(): Promise<void>;
    _loadFromItems(): void;
    load(): Promise<void>;
}
