import { Anchor, type AnchorModel } from "./anchor.js";
import type { Worksheet } from "./worksheet.js";
interface ImageHyperlinks {
    hyperlink?: string;
    tooltip?: string;
}
interface ImageExt {
    width?: number;
    height?: number;
}
interface ImageRange {
    tl: Anchor;
    br?: Anchor;
    ext?: ImageExt;
    editAs?: string;
    hyperlinks?: ImageHyperlinks;
}
interface BackgroundModel {
    type: "background";
    imageId: string;
}
interface ImageRangeModel {
    tl: AnchorModel;
    br?: AnchorModel;
    ext?: ImageExt;
    editAs?: string;
}
interface ImageModel {
    type: "image";
    imageId: string;
    hyperlinks?: ImageHyperlinks;
    range: ImageRangeModel;
}
type Model = BackgroundModel | ImageModel;
type ImageModelInput = ModelInput;
interface RangeInput {
    tl?: AnchorModel | {
        col: number;
        row: number;
    } | string;
    br?: AnchorModel | {
        col: number;
        row: number;
    } | string;
    ext?: ImageExt;
    editAs?: string;
    hyperlinks?: ImageHyperlinks;
}
interface ModelInput {
    type: string;
    imageId: string;
    range?: string | RangeInput | ImageRangeModel;
    hyperlinks?: ImageHyperlinks;
}
declare class Image {
    worksheet: Worksheet;
    type?: string;
    imageId?: string;
    range?: ImageRange;
    constructor(worksheet: Worksheet, model?: ModelInput);
    get model(): Model;
    set model({ type, imageId, range, hyperlinks }: ModelInput);
    clone(worksheet?: Worksheet): Image;
}
export { Image, type Model as ImageModel, type ImageModelInput };
