import { ExtractPropTypes, PropType } from 'vue';
import { Layer } from '@mapgis/webclient-vue3-common-utils';
export interface PickLayerId {
    layerId: string;
    sublayerIds?: string[];
}
export interface PickedFeatureOption {
    id?: string;
    key?: string;
    title?: string;
    graphic?: any;
    layer?: any;
    attributes?: any;
    showAttributeTable?: boolean;
    showZoomIn?: boolean;
    isLeaf?: boolean;
}
export declare const pickProps: {
    /**
     * @description 拾取的图层列表，默认拾取所有支持的图层，监听属性，pickLayers和pickLayerIds同时存在时优先使用pickLayers
     */
    pickLayers: {
        type: PropType<Layer[]>;
    };
    /**
     * @description 拾取的图层ID列表，默认拾取所有支持的图层，监听属性
     */
    pickLayerIds: {
        type: PropType<PickLayerId[]>;
    };
    /**
     * @description 缓冲距离
     */
    bufferDistance: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * 缓冲单位，可取值为像素、厘米、米、千米，默认为像素
     */
    bufferUnit: {
        type: StringConstructor;
        default: string;
        validator: (v: any) => boolean;
    };
    /**
     * @description 是否开启拾取高亮效果
     */
    enableHighlight: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description 是否显示拾取气泡框
     */
    showPickPopup: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description 拾取显示样式
     */
    pickShowStyle: {
        type: ObjectConstructor;
        default: () => {
            showMode: string;
            markerStyle: {
                defaultImage: string;
                highlightImage: string;
                width: number;
                height: number;
            };
            popupStyle: {
                component: any;
                anchor: string;
                nameWidth: number;
                valueWidth: number;
            };
            featureStyle: {
                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;
                    };
                };
            };
            highlightFeatureStyle: {
                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;
                    };
                };
            };
        };
    };
};
export declare const pickEmits: {
    pickLayers: (val: any) => boolean;
    pickedFeatures: ({ pickedFeatures, pickedFeaturesTree }: {
        pickedFeatures: any;
        pickedFeaturesTree: any;
    }) => boolean;
    beforePopupOpen: ({ pickedFeatures, popupOptions: { component, anchor, nameWidth, valueWidth, prevent } }: {
        pickedFeatures: any;
        popupOptions: {
            component: any;
            anchor: any;
            nameWidth: any;
            valueWidth: any;
            prevent: any;
        };
    }) => boolean;
    afterPopupClosed: () => boolean;
};
export type PickProps = ExtractPropTypes<typeof pickProps>;
export type PickEmits = typeof pickEmits;
