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

/**
 * 文字标绘样式配置
 */
export interface TextStyleConfig extends DrawingStyleConfig {
    textContent: string;
    fontSize?: number;
    fontFamily?: string;
    fontWeight?: "normal" | "bold" | "bolder" | "lighter";
    fontStyle?: "normal" | "italic" | "oblique";
    textColor?: string;
    textAlign?: "left" | "center" | "right" | "start" | "end";
    textBaseline?: "top" | "middle" | "bottom" | "alphabetic" | "hanging";
    textOffsetX?: number;
    textOffsetY?: number;
    textRotation?: number;
    textScale?: number;
    backgroundColor?: string;
    backgroundOpacity?: number;
    backgroundPadding?: [number, number, number, number];
    textStrokeColor?: string;
    textStrokeWidth?: number;
    textShadowColor?: string;
    textShadowOffsetX?: number;
    textShadowOffsetY?: number;
    textShadowBlur?: number;
}
/**
 * 文字标绘配置
 */
export interface TextDrawingConfig extends DrawingConfig {
    type: "text";
    coordinates: Coordinate;
    style?: TextStyleConfig;
}
/**
 * 文字标绘类
 * 专门用于在地图上绘制文字标注，支持丰富的文字样式和效果
 */
export declare class TextDrawing extends BaseDrawing<TextDrawingConfig, TextStyleConfig> {
    constructor(config: TextDrawingConfig);
    /**
     * 创建要素
     */
    protected createFeature(): void;
    /**
     * 创建样式
     */
    protected createStyle(): Style;
    /**
     * 获取字体字符串
     */
    private getFontString;
    /**
     * 更新要素几何
     */
    protected updateFeatureGeometry(): void;
    /**
     * 更新选中样式
     */
    protected updateSelectionStyle(): void;
    /**
     * 设置坐标
     */
    setCoordinates(coordinates: Coordinate): void;
    /**
     * 获取坐标
     */
    getCoordinates(): Coordinate;
    /**
     * 设置文字内容
     */
    setText(text: string): void;
    /**
     * 获取文字内容
     */
    getText(): string;
    /**
     * 设置字体大小
     */
    setFontSize(size: number): void;
    /**
     * 设置字体颜色
     */
    setTextColor(color: string): void;
    /**
     * 设置字体样式
     */
    setFontStyle(options: {
        family?: string;
        size?: number;
        weight?: "normal" | "bold" | "bolder" | "lighter";
        style?: "normal" | "italic" | "oblique";
        color?: string;
    }): void;
    /**
     * 设置文字对齐
     */
    setTextAlign(align: "left" | "center" | "right" | "start" | "end", baseline?: "top" | "middle" | "bottom" | "alphabetic" | "hanging"): void;
    /**
     * 设置文字偏移
     */
    setTextOffset(offsetX: number, offsetY: number): void;
    /**
     * 设置文字旋转
     */
    setTextRotation(rotation: number): void;
    /**
     * 设置文字缩放
     */
    setTextScale(scale: number): void;
    /**
     * 设置背景样式
     */
    setBackground(options: {
        color?: string;
        opacity?: number;
        padding?: [number, number, number, number];
    }): void;
    /**
     * 设置文字描边
     */
    setTextStroke(color: string, width: number): void;
    /**
     * 移除文字描边
     */
    removeTextStroke(): void;
    /**
     * 创建实例
     */
    protected createInstance(config: TextDrawingConfig): BaseDrawing<TextDrawingConfig, TextStyleConfig>;
    /**
     * 从JSON数据创建文字标绘
     */
    static fromJSON(data: any): TextDrawing;
    /**
     * 为颜色添加透明度
     */
    private addOpacityToColor;
}
/**
 * 文字标绘工厂类
 */
export declare class TextDrawingFactory {
    static create(config: TextDrawingConfig): TextDrawing;
    static getType(): string;
    static getSupportedTypes(): string[];
    /**
     * 创建预设文字标绘
     */
    static createPreset(coordinates: Coordinate, text: string, preset: "default" | "title" | "subtitle" | "caption" | "warning" | "success" | "danger" | "info", options?: {
        name?: string;
        fontSize?: number;
        fontFamily?: string;
        backgroundColor?: string;
        textStroke?: boolean;
    }): TextDrawing;
}
//# sourceMappingURL=TextDrawing.d.ts.map