import { BaseDrawing } from './BaseDrawing';
import { PointDrawing, PointDrawingFactory, PointStyleConfig, PointDrawingConfig } from './PointDrawing';
import { TextDrawing, TextDrawingFactory, TextStyleConfig, TextDrawingConfig } from './TextDrawing';
import { PointWithTextDrawing, PointWithTextDrawingFactory, PointWithTextStyleConfig, PointWithTextDrawingConfig } from './PointWithTextDrawing';
import { IconDrawing, IconDrawingFactory, IconStyleConfig, IconDrawingConfig } from './IconDrawing';
import { LineDrawing, LineDrawingFactory, LineStyleConfig, LineDrawingConfig } from './LineDrawing';
import { PolygonDrawing, PolygonDrawingFactory, PolygonStyleConfig, PolygonDrawingConfig } from './PolygonDrawing';
import { MultiPolygonDrawing, MultiPolygonDrawingFactory, MultiPolygonStyleConfig, MultiPolygonDrawingConfig } from './MultiPolygonDrawing';
import { MultiPointDrawing, MultiPointDrawingFactory, MultiPointStyleConfig, MultiPointDrawingConfig } from './MultiPointDrawing';
import { MultiLineStringDrawing, MultiLineStringDrawingFactory, MultiLineStringStyleConfig, MultiLineStringDrawingConfig } from './MultiLineStringDrawing';
import { ImageDrawing, ImageDrawingFactory, ImageStyleConfig, ImageDrawingConfig } from './ImageDrawing';
import { MilitaryDrawing, MilitaryDrawingFactory, MilitaryStyleConfig, MilitaryDrawingConfig } from './MilitaryDrawing';
import { DrawingManager, DrawingManagerFactory } from './DrawingManager';
/**
 * 地图标绘模块
 * 提供完整的地图标绘功能，包括点、线、面、图片、军事符号等
 */
export { BaseDrawing } from './BaseDrawing';
export type { DrawingConfig, DrawingStyleConfig, DrawingEvents, } from './BaseDrawing';
export { PointDrawing, PointDrawingFactory } from './PointDrawing';
export type { PointStyleConfig, PointDrawingConfig } from './PointDrawing';
export { TextDrawing, TextDrawingFactory } from './TextDrawing';
export type { TextStyleConfig, TextDrawingConfig } from './TextDrawing';
export { PointWithTextDrawing, PointWithTextDrawingFactory, } from './PointWithTextDrawing';
export type { PointWithTextStyleConfig, PointWithTextDrawingConfig, } from './PointWithTextDrawing';
export { IconDrawing, IconDrawingFactory } from './IconDrawing';
export type { IconStyleConfig, IconDrawingConfig } from './IconDrawing';
export { LineDrawing, LineDrawingFactory } from './LineDrawing';
export type { LineStyleConfig, LineDrawingConfig } from './LineDrawing';
export { PolygonDrawing, PolygonDrawingFactory } from './PolygonDrawing';
export type { PolygonStyleConfig, PolygonDrawingConfig, } from './PolygonDrawing';
export { MultiPolygonDrawing, MultiPolygonDrawingFactory, } from './MultiPolygonDrawing';
export type { MultiPolygonStyleConfig, MultiPolygonDrawingConfig, } from './MultiPolygonDrawing';
export { MultiPointDrawing, MultiPointDrawingFactory, } from './MultiPointDrawing';
export type { MultiPointStyleConfig, MultiPointDrawingConfig, } from './MultiPointDrawing';
export { MultiLineStringDrawing, MultiLineStringDrawingFactory, } from './MultiLineStringDrawing';
export type { MultiLineStringStyleConfig, MultiLineStringDrawingConfig, } from './MultiLineStringDrawing';
export { ImageDrawing, ImageDrawingFactory } from './ImageDrawing';
export type { ImageStyleConfig, ImageDrawingConfig } from './ImageDrawing';
export { MilitaryDrawing, MilitaryDrawingFactory } from './MilitaryDrawing';
export type { MilitaryStyleConfig, MilitaryDrawingConfig, } from './MilitaryDrawing';
export { DrawingManager, DrawingManagerFactory } from './DrawingManager';
export type { DrawingMode, DrawingManagerConfig, DrawingManagerEvents, } from './DrawingManager';
export type DrawingFactory = typeof PointDrawingFactory | typeof TextDrawingFactory | typeof PointWithTextDrawingFactory | typeof IconDrawingFactory | typeof LineDrawingFactory | typeof PolygonDrawingFactory | typeof MultiPolygonDrawingFactory | typeof MultiPointDrawingFactory | typeof MultiLineStringDrawingFactory | typeof ImageDrawingFactory | typeof MilitaryDrawingFactory;
export type Drawing = PointDrawing | TextDrawing | PointWithTextDrawing | IconDrawing | LineDrawing | PolygonDrawing | MultiPolygonDrawing | MultiPointDrawing | MultiLineStringDrawing | ImageDrawing | MilitaryDrawing;
export type AnyDrawingStyleConfig = PointStyleConfig | TextStyleConfig | PointWithTextStyleConfig | IconStyleConfig | LineStyleConfig | PolygonStyleConfig | MultiPolygonStyleConfig | MultiPointStyleConfig | MultiLineStringStyleConfig | ImageStyleConfig | MilitaryStyleConfig;
export type AnyDrawingConfig = PointDrawingConfig | TextDrawingConfig | PointWithTextDrawingConfig | IconDrawingConfig | LineDrawingConfig | PolygonDrawingConfig | MultiPolygonDrawingConfig | MultiPointDrawingConfig | MultiLineStringDrawingConfig | ImageDrawingConfig | MilitaryDrawingConfig;
/**
 * 标绘工厂注册表
 */ export declare const DrawingFactoryRegistry: {
    readonly point: typeof PointDrawingFactory;
    readonly text: typeof TextDrawingFactory;
    readonly "point-text": typeof PointWithTextDrawingFactory;
    readonly icon: typeof IconDrawingFactory;
    readonly line: typeof LineDrawingFactory;
    readonly polygon: typeof PolygonDrawingFactory;
    readonly multipolygon: typeof MultiPolygonDrawingFactory;
    readonly "multi-polygon": typeof MultiPolygonDrawingFactory;
    readonly multipoint: typeof MultiPointDrawingFactory;
    readonly "multi-point": typeof MultiPointDrawingFactory;
    readonly multilinestring: typeof MultiLineStringDrawingFactory;
    readonly "multi-linestring": typeof MultiLineStringDrawingFactory;
    readonly multiline: typeof MultiLineStringDrawingFactory;
    readonly image: typeof ImageDrawingFactory;
    readonly military: typeof MilitaryDrawingFactory;
};
/**
 * 根据类型创建标绘对象
 */
export declare function createDrawing(config: AnyDrawingConfig): Drawing;
/**
 * 获取所有支持的标绘类型
 */
export declare function getSupportedDrawingTypes(): string[];
/**
 * 检查是否为有效的标绘类型
 */
export declare function isValidDrawingType(type: string): type is keyof typeof DrawingFactoryRegistry;
/**
 * 从JSON数据创建标绘对象
 */
export declare function createDrawingFromJSON(data: any): Drawing;
/**
 * 标绘预设样式
 */
export declare const DrawingPresets: {
    readonly point: {
        readonly default: {
            readonly shape: "circle";
            readonly size: 10;
            readonly color: "#1890ff";
        };
        readonly marker: {
            readonly shape: "circle";
            readonly size: 12;
            readonly color: "#ff4d4f";
            readonly strokeColor: "#ffffff";
            readonly strokeWidth: 2;
        };
        readonly location: {
            readonly shape: "triangle";
            readonly size: 14;
            readonly color: "#52c41a";
            readonly rotation: 0;
        };
        readonly warning: {
            readonly shape: "triangle";
            readonly size: 16;
            readonly color: "#faad14";
            readonly strokeColor: "#ffffff";
            readonly strokeWidth: 2;
        };
    };
    readonly text: {
        readonly default: {
            readonly fontSize: 14;
            readonly fontFamily: "Arial";
            readonly color: "#000000";
        };
        readonly title: {
            readonly fontSize: 18;
            readonly fontFamily: "Arial";
            readonly color: "#1890ff";
            readonly fontWeight: "bold";
        };
        readonly label: {
            readonly fontSize: 12;
            readonly fontFamily: "Arial";
            readonly color: "#666666";
        };
        readonly warning: {
            readonly fontSize: 16;
            readonly fontFamily: "Arial";
            readonly color: "#ff4d4f";
            readonly fontWeight: "bold";
        };
    };
    readonly "point-text": {
        readonly default: {
            readonly pointStyle: {
                readonly shape: "circle";
                readonly size: 8;
                readonly color: "#1890ff";
            };
            readonly textStyle: {
                readonly fontSize: 12;
                readonly fontFamily: "Arial";
                readonly color: "#000000";
                readonly offsetY: -20;
            };
        };
        readonly marker: {
            readonly pointStyle: {
                readonly shape: "circle";
                readonly size: 10;
                readonly color: "#ff4d4f";
                readonly strokeColor: "#ffffff";
                readonly strokeWidth: 2;
            };
            readonly textStyle: {
                readonly fontSize: 14;
                readonly fontFamily: "Arial";
                readonly color: "#ff4d4f";
                readonly fontWeight: "bold";
                readonly offsetY: -25;
            };
        };
    };
    readonly icon: {
        readonly default: {
            readonly scale: 1;
            readonly opacity: 1;
        };
        readonly small: {
            readonly scale: 0.8;
            readonly opacity: 1;
        };
        readonly large: {
            readonly scale: 1.5;
            readonly opacity: 1;
        };
        readonly transparent: {
            readonly scale: 1;
            readonly opacity: 0.7;
        };
    };
    readonly line: {
        readonly default: {
            readonly color: "#1890ff";
            readonly width: 2;
        };
        readonly road: {
            readonly color: "#595959";
            readonly width: 4;
            readonly lineCap: "round";
        };
        readonly boundary: {
            readonly color: "#ff4d4f";
            readonly width: 2;
            readonly lineDash: readonly [10, 5];
        };
        readonly arrow: {
            readonly color: "#52c41a";
            readonly width: 3;
            readonly showArrow: true;
            readonly arrowSize: 12;
        };
    };
    readonly polygon: {
        readonly default: {
            readonly fillColor: "rgba(24, 144, 255, 0.2)";
            readonly strokeColor: "#1890ff";
            readonly strokeWidth: 2;
        };
        readonly area: {
            readonly fillColor: "rgba(82, 196, 26, 0.2)";
            readonly strokeColor: "#52c41a";
            readonly strokeWidth: 2;
            readonly showArea: true;
        };
        readonly zone: {
            readonly fillColor: "rgba(255, 77, 79, 0.2)";
            readonly strokeColor: "#ff4d4f";
            readonly strokeWidth: 2;
            readonly lineDash: readonly [5, 5];
        };
        readonly building: {
            readonly fillColor: "rgba(250, 173, 20, 0.3)";
            readonly strokeColor: "#faad14";
            readonly strokeWidth: 2;
        };
    };
    readonly military: {
        readonly friendlyUnit: {
            readonly affiliation: "friendly";
            readonly symbolSize: 32;
            readonly showAffiliation: true;
            readonly showEchelon: true;
        };
        readonly hostileUnit: {
            readonly affiliation: "hostile";
            readonly symbolSize: 32;
            readonly showAffiliation: true;
            readonly showEchelon: true;
        };
        readonly neutralFacility: {
            readonly affiliation: "neutral";
            readonly symbolSize: 28;
            readonly showAffiliation: true;
            readonly showEchelon: false;
        };
        readonly tacticalLine: {
            readonly affiliation: "friendly";
            readonly symbolSize: 24;
            readonly showAffiliation: false;
            readonly showEchelon: false;
        };
    };
};
/**
 * 获取预设样式
 */
export declare function getDrawingPreset(type: keyof typeof DrawingPresets, preset: string): Partial<AnyDrawingStyleConfig> | undefined;
/**
 * 应用预设样式到配置
 */
export declare function applyDrawingPreset<T extends Record<string, any>>(config: T, presetType: keyof typeof DrawingPresets, presetName: string): T;
/**
 * 标绘工具类
 */
export declare class DrawingUtils {
    /**
     * 计算两点间距离
     */
    static calculateDistance(coord1: [number, number], coord2: [number, number]): number;
    /**
     * 计算多边形面积
     */
    static calculatePolygonArea(coordinates: [number, number][]): number;
    /**
     * 计算线段长度
     */
    static calculateLineLength(coordinates: [number, number][]): number;
    /**
     * 计算多边形中心点
     */
    static calculatePolygonCenter(coordinates: [number, number][]): [number, number];
    /**
     * 格式化距离显示
     */
    static formatDistance(distance: number): string;
    /**
     * 格式化面积显示
     */
    static formatArea(area: number): string;
    /**
     * 生成唯一ID
     */
    static generateId(prefix?: string): string;
    /**
     * 颜色工具
     */
    static addOpacityToColor(color: string, opacity: number): string;
}
declare const _default: {
    BaseDrawing: typeof BaseDrawing;
    PointDrawing: typeof PointDrawing;
    TextDrawing: typeof TextDrawing;
    PointWithTextDrawing: typeof PointWithTextDrawing;
    IconDrawing: typeof IconDrawing;
    LineDrawing: typeof LineDrawing;
    PolygonDrawing: typeof PolygonDrawing;
    ImageDrawing: typeof ImageDrawing;
    MilitaryDrawing: typeof MilitaryDrawing;
    DrawingManager: typeof DrawingManager;
    PointDrawingFactory: typeof PointDrawingFactory;
    TextDrawingFactory: typeof TextDrawingFactory;
    PointWithTextDrawingFactory: typeof PointWithTextDrawingFactory;
    IconDrawingFactory: typeof IconDrawingFactory;
    LineDrawingFactory: typeof LineDrawingFactory;
    PolygonDrawingFactory: typeof PolygonDrawingFactory;
    ImageDrawingFactory: typeof ImageDrawingFactory;
    MilitaryDrawingFactory: typeof MilitaryDrawingFactory;
    DrawingManagerFactory: typeof DrawingManagerFactory;
    DrawingFactoryRegistry: {
        readonly point: typeof PointDrawingFactory;
        readonly text: typeof TextDrawingFactory;
        readonly "point-text": typeof PointWithTextDrawingFactory;
        readonly icon: typeof IconDrawingFactory;
        readonly line: typeof LineDrawingFactory;
        readonly polygon: typeof PolygonDrawingFactory;
        readonly multipolygon: typeof MultiPolygonDrawingFactory;
        readonly "multi-polygon": typeof MultiPolygonDrawingFactory;
        readonly multipoint: typeof MultiPointDrawingFactory;
        readonly "multi-point": typeof MultiPointDrawingFactory;
        readonly multilinestring: typeof MultiLineStringDrawingFactory;
        readonly "multi-linestring": typeof MultiLineStringDrawingFactory;
        readonly multiline: typeof MultiLineStringDrawingFactory;
        readonly image: typeof ImageDrawingFactory;
        readonly military: typeof MilitaryDrawingFactory;
    };
    DrawingPresets: {
        readonly point: {
            readonly default: {
                readonly shape: "circle";
                readonly size: 10;
                readonly color: "#1890ff";
            };
            readonly marker: {
                readonly shape: "circle";
                readonly size: 12;
                readonly color: "#ff4d4f";
                readonly strokeColor: "#ffffff";
                readonly strokeWidth: 2;
            };
            readonly location: {
                readonly shape: "triangle";
                readonly size: 14;
                readonly color: "#52c41a";
                readonly rotation: 0;
            };
            readonly warning: {
                readonly shape: "triangle";
                readonly size: 16;
                readonly color: "#faad14";
                readonly strokeColor: "#ffffff";
                readonly strokeWidth: 2;
            };
        };
        readonly text: {
            readonly default: {
                readonly fontSize: 14;
                readonly fontFamily: "Arial";
                readonly color: "#000000";
            };
            readonly title: {
                readonly fontSize: 18;
                readonly fontFamily: "Arial";
                readonly color: "#1890ff";
                readonly fontWeight: "bold";
            };
            readonly label: {
                readonly fontSize: 12;
                readonly fontFamily: "Arial";
                readonly color: "#666666";
            };
            readonly warning: {
                readonly fontSize: 16;
                readonly fontFamily: "Arial";
                readonly color: "#ff4d4f";
                readonly fontWeight: "bold";
            };
        };
        readonly "point-text": {
            readonly default: {
                readonly pointStyle: {
                    readonly shape: "circle";
                    readonly size: 8;
                    readonly color: "#1890ff";
                };
                readonly textStyle: {
                    readonly fontSize: 12;
                    readonly fontFamily: "Arial";
                    readonly color: "#000000";
                    readonly offsetY: -20;
                };
            };
            readonly marker: {
                readonly pointStyle: {
                    readonly shape: "circle";
                    readonly size: 10;
                    readonly color: "#ff4d4f";
                    readonly strokeColor: "#ffffff";
                    readonly strokeWidth: 2;
                };
                readonly textStyle: {
                    readonly fontSize: 14;
                    readonly fontFamily: "Arial";
                    readonly color: "#ff4d4f";
                    readonly fontWeight: "bold";
                    readonly offsetY: -25;
                };
            };
        };
        readonly icon: {
            readonly default: {
                readonly scale: 1;
                readonly opacity: 1;
            };
            readonly small: {
                readonly scale: 0.8;
                readonly opacity: 1;
            };
            readonly large: {
                readonly scale: 1.5;
                readonly opacity: 1;
            };
            readonly transparent: {
                readonly scale: 1;
                readonly opacity: 0.7;
            };
        };
        readonly line: {
            readonly default: {
                readonly color: "#1890ff";
                readonly width: 2;
            };
            readonly road: {
                readonly color: "#595959";
                readonly width: 4;
                readonly lineCap: "round";
            };
            readonly boundary: {
                readonly color: "#ff4d4f";
                readonly width: 2;
                readonly lineDash: readonly [10, 5];
            };
            readonly arrow: {
                readonly color: "#52c41a";
                readonly width: 3;
                readonly showArrow: true;
                readonly arrowSize: 12;
            };
        };
        readonly polygon: {
            readonly default: {
                readonly fillColor: "rgba(24, 144, 255, 0.2)";
                readonly strokeColor: "#1890ff";
                readonly strokeWidth: 2;
            };
            readonly area: {
                readonly fillColor: "rgba(82, 196, 26, 0.2)";
                readonly strokeColor: "#52c41a";
                readonly strokeWidth: 2;
                readonly showArea: true;
            };
            readonly zone: {
                readonly fillColor: "rgba(255, 77, 79, 0.2)";
                readonly strokeColor: "#ff4d4f";
                readonly strokeWidth: 2;
                readonly lineDash: readonly [5, 5];
            };
            readonly building: {
                readonly fillColor: "rgba(250, 173, 20, 0.3)";
                readonly strokeColor: "#faad14";
                readonly strokeWidth: 2;
            };
        };
        readonly military: {
            readonly friendlyUnit: {
                readonly affiliation: "friendly";
                readonly symbolSize: 32;
                readonly showAffiliation: true;
                readonly showEchelon: true;
            };
            readonly hostileUnit: {
                readonly affiliation: "hostile";
                readonly symbolSize: 32;
                readonly showAffiliation: true;
                readonly showEchelon: true;
            };
            readonly neutralFacility: {
                readonly affiliation: "neutral";
                readonly symbolSize: 28;
                readonly showAffiliation: true;
                readonly showEchelon: false;
            };
            readonly tacticalLine: {
                readonly affiliation: "friendly";
                readonly symbolSize: 24;
                readonly showAffiliation: false;
                readonly showEchelon: false;
            };
        };
    };
    DrawingUtils: typeof DrawingUtils;
    createDrawing: typeof createDrawing;
    createDrawingFromJSON: typeof createDrawingFromJSON;
    getSupportedDrawingTypes: typeof getSupportedDrawingTypes;
    isValidDrawingType: typeof isValidDrawingType;
    getDrawingPreset: typeof getDrawingPreset;
    applyDrawingPreset: typeof applyDrawingPreset;
};
export default _default;
//# sourceMappingURL=index.d.ts.map