import { Size } from "@sheetxl/common";
import { ISharedResource } from "../resource";
import { IDrawingModel, AddDrawingOptions, DrawingShapeJSON } from "./IDrawingModel";
import { AbstractDrawing, AnchoredDrawingOptions } from './DrawingModel';
export interface AddDrawingImageOptions extends AddDrawingOptions<DrawingImageJSON> {
}
export interface DrawingImageJSON extends DrawingShapeJSON {
}
export interface ReferenceImageJSON extends DrawingImageJSON {
    /**
     * The resource id for the image. The actual image data is stored in the resource.
     */
    resId?: number;
}
export interface IDrawingImageDetails {
    /**
     * Return the mimeType
     */
    mimeType: string;
    naturalSize: Size;
    asUrl: string;
    /**
     * For SVG Text
     */
    asSVGText?: string;
}
export interface IDrawingImageModel extends IDrawingModel<DrawingImageJSON> {
    /**
     * Return a local object URL for placing in an image tag.
     */
    details(): Promise<IDrawingImageDetails>;
}
/**
 * The Drawing model for Images.
 */
export declare class DrawingImageModel extends AbstractDrawing<DrawingImageJSON> implements IDrawingImageModel {
    private _resource;
    private _details;
    private _dataUrl;
    constructor(options: AnchoredDrawingOptions);
    protected _drawingTypeDescription(): string;
    protected _asDataUrl(): Promise<string>;
    toImage(): Promise<Blob>;
    details(): Promise<IDrawingImageDetails>;
    protected _fromDrawingJSON(drawing: ReferenceImageJSON, fromResourceId?: (id: number) => ISharedResource): void;
    protected _toDrawingJSON(toResourceId?: (resource: ISharedResource) => number): ReferenceImageJSON;
    close(): void;
}
//# sourceMappingURL=DrawingImageModel.d.ts.map