import { ExtractPropTypes, PropType } from 'vue';
export declare const defaultQueryAttributeTableExpandedStyle = "position: absolute; width: 100%; height: 50%;";
export declare const defaultQueryAttributeTableCollapsedStyle = "position: absolute; width: 100%; height: 0;z-index: 1200;";
export declare const defaultQueryResult: {
    inAttributeTable: boolean;
    style: string;
    position: string;
};
export declare const defaultQueryDrawStyle: {
    pointColor: string;
    pointSize: number;
    lineColor: string;
    lineWidth: number;
    fillColor: string;
};
export declare const defaultQueryShowStyle: {
    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 interface QueryItem {
    id: string;
    label?: string;
    icon?: string;
    action?: Function;
}
export interface LayerQueryOptions {
    geometry?: object;
    distance?: number;
    attributeFilter?: string;
    fieldList?: string[];
    featureIds?: number[];
}
export interface QueryLayerParams extends LayerQueryOptions {
    layer: object;
    sublayers?: QueryLayerParams[];
}
export interface QueryOtherOptions {
}
export interface QueryResultParams {
    inAttributeTable: boolean;
    style: string;
    position: 'top-right' | 'top-left' | 'top-center' | 'center-right' | 'center-left' | 'center-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
    customAttributeTableMaxHeight: ({ viewContainerElement, tableContainerElement, tableElement }: {
        viewContainerElement: any;
        tableContainerElement: any;
        tableElement: any;
    }) => number;
}
export declare const featureQueryProps: {
    /**
     * @description 查询功能项列表
     */
    queryItems: {
        type: PropType<QueryItem[]>;
    };
    /**
     * @description 查询图层选择模式，all：查询全部图层；selected：查询选择图层
     */
    queryLayerSelectMode: {
        type: StringConstructor;
        default: string;
        validator: (v: any) => boolean;
    };
    /**
     * @description 要查询的图层列表，如果为空，则允许用户选择要查询的图层列表
     */
    queryLayers: {
        type: PropType<QueryLayerParams[]>;
    };
    /**
     * @description 查询几何
     */
    geometry: {
        type: ObjectConstructor;
    };
    /**
     * @description 是否显示查询区域
     */
    geometryVisible: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description 是否开启连续绘制
     */
    continueDrawing: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @description 绘制样式
     */
    queryDrawStyle: {
        type: ObjectConstructor;
        default: () => {
            pointColor: string;
            pointSize: number;
            lineColor: string;
            lineWidth: number;
            fillColor: string;
        };
    };
    /**
     * @description 显示样式
     */
    queryShowStyle: {
        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;
                    };
                };
            };
        };
    };
    /**
     * @description 缓冲距离，当查询类型为点和线时有效
     */
    bufferDistance: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * @description 缓冲单位，当查询类型为点和线时有效，可取值为像素、厘米、米、千米，默认为像素
     */
    bufferUnit: {
        type: StringConstructor;
        default: string;
        validator: (v: any) => boolean;
    };
    /**
     * @description 查询结果参数
     */
    queryResult: {
        type: PropType<QueryResultParams>;
        default: () => {
            inAttributeTable: boolean;
            style: string;
            position: string;
        };
    };
};
export declare const featureQueryEmits: {
    itemChange: (itemId: string, item: QueryItem) => boolean;
    queryParamsChange: ({ queryLayers, geometry, options }: {
        queryLayers: QueryLayerParams[];
        geometry: any;
        options: QueryOtherOptions;
    }) => boolean;
    clear: () => boolean;
};
export type FeatureQueryProps = ExtractPropTypes<typeof featureQueryProps>;
export type FeatureQueryEmits = typeof featureQueryEmits;
