import { Style, Fill, Stroke, Circle, Icon, Text, RegularShape } from 'ol/style';
import { Feature } from 'ol';
import { Geometry } from 'ol/geom';
import { IFillConfig, IStrokeConfig, ITextConfig, IIconConfig, ICircleConfig, IRegularShapeConfig, IPointStyleConfig, ILineStyleConfig, IPolygonStyleConfig, GeometryType } from './interfaces';

/**
 * 样式工厂类
 * 负责根据配置创建 OpenLayers 样式对象
 */
export declare class StyleFactory {
    /**
     * 创建填充样式
     * @param config 填充配置
     */
    static createFill(config?: IFillConfig): Fill | undefined;
    /**
     * 创建描边样式
     * @param config 描边配置
     */
    static createStroke(config?: IStrokeConfig): Stroke | undefined;
    /**
     * 创建文本样式
     * @param config 文本配置
     */
    static createText(config?: ITextConfig): Text | undefined;
    /**
     * 创建图标样式
     * @param config 图标配置
     */
    static createIcon(config?: IIconConfig): Icon | undefined;
    /**
     * 创建圆形样式
     * @param config 圆形配置
     */
    static createCircle(config?: ICircleConfig): Circle | undefined;
    /**
     * 创建正多边形样式
     * @param config 正多边形配置
     */
    static createRegularShape(config?: IRegularShapeConfig): RegularShape | undefined;
    /**
     * 创建点样式
     * @param config 点样式配置
     */
    static createPointStyle(config?: IPointStyleConfig): Style;
    /**
     * 创建线样式
     * @param config 线样式配置
     */
    static createLineStyle(config?: ILineStyleConfig): Style;
    /**
     * 创建面样式
     * @param config 面样式配置
     */
    static createPolygonStyle(config?: IPolygonStyleConfig): Style;
    /**
     * 根据几何类型创建样式
     * @param geometryType 几何类型
     * @param config 样式配置
     */
    static createStyleByGeometryType(geometryType: GeometryType, config?: IPointStyleConfig | ILineStyleConfig | IPolygonStyleConfig): Style;
    /**
     * 获取要素的几何类型
     * @param feature 要素
     */
    static getFeatureGeometryType(feature: Feature<Geometry>): GeometryType;
    /**
     * 创建样式数组
     * @param geometryType 几何类型
     * @param configs 样式配置数组
     */
    static createStyles(geometryType: GeometryType, configs?: (IPointStyleConfig | ILineStyleConfig | IPolygonStyleConfig)[]): Style[];
}
//# sourceMappingURL=StyleFactory.d.ts.map