import { Style } from 'ol/style';
import { Coordinate } from 'ol/coordinate';
import { BaseDrawing, DrawingConfig, DrawingStyleConfig } from './BaseDrawing';

/**
 * 图片标绘样式配置
 */
export interface ImageStyleConfig extends DrawingStyleConfig {
    imageUrl: string;
    imageSize?: [number, number];
    imageScale?: number;
    imageRotation?: number;
    imageAnchor?: [number, number];
    imageOffset?: [number, number];
    showBorder?: boolean;
    borderColor?: string;
    borderWidth?: number;
    showShadow?: boolean;
    shadowColor?: string;
    shadowOffset?: [number, number];
    shadowBlur?: number;
    allowResize?: boolean;
    maintainAspectRatio?: boolean;
}
/**
 * 图片标绘配置
 */
export interface ImageDrawingConfig extends DrawingConfig {
    type: "image";
    coordinates: Coordinate;
    style: ImageStyleConfig;
}
/**
 * 图片标绘类
 * 支持在地图上添加图片标注，包括图标、照片、标识等
 */
export declare class ImageDrawing extends BaseDrawing<ImageDrawingConfig, ImageStyleConfig> {
    private _imageElement;
    private _imageLoaded;
    private _originalSize;
    constructor(config: ImageDrawingConfig);
    /**
     * 预加载图片
     */
    preloadImage(): Promise<void>;
    /**
     * 创建要素
     */
    protected createFeature(): void;
    /**
     * 创建样式
     */
    protected createStyle(): Style | Style[];
    /**
     * 创建图片样式
     */
    private createImageStyle;
    /**
     * 创建占位符样式
     */
    private createPlaceholderStyle;
    /**
     * 创建边框样式
     */
    private createBorderStyle;
    /**
     * 创建阴影样式
     */
    private createShadowStyle;
    /**
     * 创建文字样式
     */
    private createTextStyle;
    /**
     * 更新要素几何
     */
    protected updateFeatureGeometry(): void;
    /**
     * 更新选中状态的样式
     */
    protected updateSelectionStyle(): void;
    /**
     * 设置坐标
     */
    setCoordinates(coordinates: Coordinate): void;
    /**
     * 获取坐标
     */
    getCoordinates(): Coordinate;
    /**
     * 设置图片URL
     */
    setImageUrl(url: string): Promise<void>;
    /**
     * 获取图片URL
     */
    getImageUrl(): string;
    /**
     * 设置图片大小
     */
    setImageSize(size: [number, number], maintainAspectRatio?: boolean): void;
    /**
     * 获取图片大小
     */
    getImageSize(): [number, number] | undefined;
    /**
     * 设置图片缩放
     */
    setImageScale(scale: number): void;
    /**
     * 获取图片缩放
     */
    getImageScale(): number;
    /**
     * 设置图片旋转角度
     */
    setImageRotation(rotation: number): void;
    /**
     * 获取图片旋转角度
     */
    getImageRotation(): number;
    /**
     * 设置图片锚点
     */
    setImageAnchor(anchor: [number, number]): void;
    /**
     * 获取图片锚点
     */
    getImageAnchor(): [number, number];
    /**
     * 设置边框
     */
    setBorder(show: boolean, options?: {
        color?: string;
        width?: number;
    }): void;
    /**
     * 设置阴影
     */
    setShadow(show: boolean, options?: {
        color?: string;
        offset?: [number, number];
        blur?: number;
    }): void;
    /**
     * 获取原始图片尺寸
     */
    getOriginalSize(): [number, number] | null;
    /**
     * 检查图片是否已加载
     */
    isImageLoaded(): boolean;
    /**
     * 创建实例
     */
    protected createInstance(config: ImageDrawingConfig): BaseDrawing<ImageDrawingConfig, ImageStyleConfig>;
    /**
     * 从JSON反序列化
     */
    static fromJSON(data: any): ImageDrawing;
    /**
     * 销毁时清理资源
     */
    destroy(): void;
}
/**
 * 图片标绘工厂
 */
export declare class ImageDrawingFactory {
    static create(config: ImageDrawingConfig): ImageDrawing;
    static getType(): string;
    static getSupportedTypes(): string[];
    /**
     * 创建预设样式的图片标绘
     */
    static createPreset(coordinates: Coordinate, imageUrl: string, preset: "default" | "bordered" | "shadowed" | "highlighted", options?: {
        name?: string;
        text?: string;
        size?: [number, number];
        scale?: number;
    }): ImageDrawing;
    /**
     * 从文件创建图片标绘
     */
    static createFromFile(coordinates: Coordinate, file: File, options?: {
        name?: string;
        text?: string;
        maxSize?: number;
    }): Promise<ImageDrawing>;
}
//# sourceMappingURL=ImageDrawing.d.ts.map