import { ExtractPropTypes, PropType } from 'vue';
/**
 * 标绘功能项
 */
export interface PlottingItem {
    id: string;
    label?: string;
    icon?: string;
    symbol?: object;
    symbolType?: string[];
    geometryType?: string;
    action?: Function;
}
/**
 * 标绘图形默认的符号样式
 */
export declare const defaultPlottingSymbolStyle: {
    marker: {
        type: any;
        color: string;
        size: number;
        outline: {
            color: string;
            width: number;
        };
    };
    line: {
        type: any;
        color: string;
        width: number;
    };
    fill: {
        type: any;
        color: string;
        outline: {
            color: string;
            width: number;
        };
    };
    text: {
        type: any;
        text: string;
        color: string;
        font: {
            family: string;
            size: number;
            style: string;
            weight: string;
        };
    };
};
/**
 * 草图编辑器绘制样式，其他样式由标绘样式决定
 */
export declare const defaultPlottingDrawStyle: {
    vertexStyle: {
        type: string;
        color: string;
        size: number;
        outline: {
            color: string;
            width: number;
        };
    };
    snapOption: {
        isSnapVertexCoincident: boolean;
        isSnapVertexInLine: boolean;
        isSnapParallel: boolean;
        isSnapPerpendicular: boolean;
        snapSketchGeometry: boolean;
    };
};
export declare const basicPlottingProps: {
    /**
     * @description 标绘功能项列表
     */
    plottingItems: {
        type: PropType<PlottingItem[]>;
    };
    /**
     * @description 符号样式
     */
    symbolStyle: {
        type: ObjectConstructor;
        default: () => {
            marker: {
                type: any;
                color: string;
                size: number;
                outline: {
                    color: string;
                    width: number;
                };
            };
            line: {
                type: any;
                color: string;
                width: number;
            };
            fill: {
                type: any;
                color: string;
                outline: {
                    color: string;
                    width: number;
                };
            };
            text: {
                type: any;
                text: string;
                color: string;
                font: {
                    family: string;
                    size: number;
                    style: string;
                    weight: string;
                };
            };
        };
    };
    /**
     * @description 绘制样式
     */
    drawStyle: {
        type: ObjectConstructor;
        default: () => {
            vertexStyle: {
                type: string;
                color: string;
                size: number;
                outline: {
                    color: string;
                    width: number;
                };
            };
            snapOption: {
                isSnapVertexCoincident: boolean;
                isSnapVertexInLine: boolean;
                isSnapParallel: boolean;
                isSnapPerpendicular: boolean;
                snapSketchGeometry: boolean;
            };
        };
    };
};
export declare const basicPlottingEmits: {};
export type BasicPlottingProps = ExtractPropTypes<typeof basicPlottingProps>;
export type BasicPlottingEmits = typeof basicPlottingEmits;
