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

/**
 * 点标绘样式配置
 */
export interface PointStyleConfig extends Omit<DrawingStyleConfig, "pointStyle"> {
    pointColor?: string;
    pointSize?: number;
    pointStyle?: "circle" | "square" | "triangle" | "star" | "cross" | "x" | "diffusion" | "gif";
    iconUrl?: string;
    iconSize?: [number, number];
    iconScale?: number;
    iconRotation?: number;
    iconAnchor?: [number, number];
    iconOffset?: [number, number];
    diffusionConfig?: {
        ringCount?: number;
        maxRadius?: number;
        duration?: number;
        color?: string;
        centerColor?: string;
        centerSize?: number;
        delay?: number;
    };
    gifConfig?: {
        url?: string;
        scale?: number;
        opacity?: number;
        anchor?: [number, number];
    };
    image?: {
        radius?: number;
        fill?: {
            color?: string;
        };
        stroke?: {
            color?: string;
            width?: number;
        };
    };
}
/**
 * 点标绘配置
 */
export interface PointDrawingConfig extends Omit<DrawingConfig, "style"> {
    type: "point";
    coordinates: Coordinate;
    style?: PointStyleConfig;
}
/**
 * 点标绘类
 * 支持各种点样式：圆形、方形、三角形、星形、十字、叉形以及自定义图标
 */
export declare class PointDrawing extends BaseDrawing<PointDrawingConfig, PointStyleConfig> {
    constructor(config: PointDrawingConfig);
    /**
     * 创建要素
     */
    protected createFeature(): void;
    /**
     * 设置动画效果（在要素添加到地图后调用）
     */
    setupGifAnimation(map: any): void;
    /**
     * 创建样式
     */
    protected createStyle(): Style | Style[];
    /**
     * 创建GIF占位符样式
     */
    private createGifPlaceholderStyle;
    /**
     * 创建图标样式
     */
    private createIconStyle;
    /**
     * 创建几何形状样式
     */
    private createGeometryStyle;
    /**
     * 创建文字样式
     */
    private createTextStyle;
    /**
     * 更新要素几何
     */
    protected updateFeatureGeometry(): void;
    /**
     * 创建选择样式
     */
    protected createSelectionStyles(): Style[];
    /**
     * 设置坐标
     */
    setCoordinates(coordinates: Coordinate): void;
    /**
     * 获取坐标
     */
    getCoordinates(): Coordinate;
    /**
     * 设置图标
     */
    setIcon(iconUrl: string, options?: {
        size?: [number, number];
        scale?: number;
        rotation?: number;
        anchor?: [number, number];
        offset?: [number, number];
    }): void;
    /**
     * 移除图标
     */
    removeIcon(): void;
    /**
     * 设置点样式
     */
    setPointStyle(style: "circle" | "square" | "triangle" | "star" | "cross" | "x" | "diffusion" | "gif"): void;
    /**
     * 设置点大小
     */
    setPointSize(size: number): void;
    /**
     * 设置点颜色
     */
    setPointColor(color: string): void;
    /**
     * 设置文字
     */
    setText(text: string, options?: {
        fontSize?: number;
        fontFamily?: string;
        color?: string;
        align?: "left" | "center" | "right";
        baseline?: "top" | "middle" | "bottom";
        offsetX?: number;
        offsetY?: number;
    }): void;
    /**
     * 移除文字
     */
    removeText(): void;
    /**
     * 创建实例
     */
    protected createInstance(config: PointDrawingConfig): BaseDrawing<PointDrawingConfig, PointStyleConfig>;
    /**
     * 从JSON反序列化
     */
    static fromJSON(data: any): PointDrawing;
    /**
     * 添加透明度到颜色
     */
    private addOpacityToColor;
}
/**
 * 点标绘工厂
 */
export declare class PointDrawingFactory {
    static create(config: PointDrawingConfig): PointDrawing;
    static getType(): string;
    static getSupportedTypes(): string[];
    /**
     * 创建预设样式的点
     */
    static createPreset(coordinates: Coordinate, preset: "default" | "warning" | "success" | "danger" | "info", options?: {
        name?: string;
        text?: string;
        size?: number;
    }): PointDrawing;
}
//# sourceMappingURL=PointDrawing.d.ts.map